Option + нажмите в iTerm


16

В Терминале Option + щелчок позволяет мне поместить курсор в любую точку текущей строки - отлично подходит для редактирования действительно длинных команд.

Как я могу сделать это в iTerm2?

Обновление: Согласно этой странице , эта функция существует с версии 0.7.0 (2003). Я также заметил, что если я удерживаю Ctrl + Option, курсор изменится на знакомый крестик, как в Терминале ... но нажатие по-прежнему не меняет положение моего курсора.


Я посмотрел на исходный код, и да, эта функция была в 0.7.0 iTerm (не iTerm2). Но закомментировано (в файле PTYSession.m) в транке (и, возможно, более ранние версии тоже). И это iTerm2 функция все еще там, но пусто и, следовательно, ничего не делает.
Boretom

Ответы:


6

Мне было интересно, «Как трудно это может быть (с)», чтобы реализовать его и сегодня попробовал.

Похоже, что Terminal.app эмулирует ESC-последовательности перемещения курсора влево / вправо. Вы услышите знаменитый звуковой сигнал, если попытаетесь поместить курсор в командной строке. И вы услышите это столько раз, сколько недействительных ходов.

Решение в iTerm2 работает так же, вызывая соответствующие последовательности ESC. Хотя он издает только один раз, если вы пытаетесь поместить курсор в недопустимую область;)

Похоже, что Terminal.app не может обрабатывать многострочные запросы, кажется, работает только перемещение на последней строке. Многострочные запросы в этой реализации должны обрабатываться правильно.

Результаты можно найти на GitHub . Это форк оригинала с ожидающим запросом на получение. Ветка, над которой я работаю, называется 'option-click-hardcoded'.

И конечно это очень непроверено. Это означает, что я тестировал только на моем MacBook Pro в конце 2007 года под управлением Mac OS X 10.7.3.

Если вы хотите попробовать его, скомпилировав его самостоятельно или загрузите предварительно скомпилированный двоичный файл для i386 / x86_64 / ppc iTerm_v1.0.0.git-085ec22c.zip ).


вау, классные вещи! Предварительно скомпилированный двоичный файл, кажется, до сих пор работает нормально на моем конце, но будет следить за этим. бесконечно благодарен!
Джефф

404 не найдено ...
Aeroxy

1
Привет @aeroxy, это изменение было давно слито в основной поток iTerm ( github.com/gnachman/iTerm2/pull/77 ). Некоторое время назад я снял вилку, так как это было единственное, что существовало.
Boretom

@boretom тогда кажется, что у меня iterm2 3.1.5.beta.1 все еще есть похожая проблема. Кажется, что когда я делаю Options-Click, он просто переходит к последней команде (стрелка вверх). apple.stackexchange.com/questions/305554/…
аэрокси

@aeroxy, если отлично работает с 3.1.5.beta2 на моем macOS 10.12.6 с пометкой «Opt-Click движется курсор» в «Установках»> «Указатель». Это все о позиционировании курсора на текущей строке. Это то, что вы пытаетесь достичь?
боретом

2

iTerm 2 не является новой версией iTerm - несмотря на то, что он основан на том же исходном коде, в нем есть значительные изменения. Одной из вещей, которая была удалена или сломана (трудно говорить с намерением разработчика), было позиционирование курсора.

Вы не единственный, кто заметил это упущение; это было зарегистрировано как ошибка с апреля 2011 и продолжает привлекать внимание. Лучшим вариантом для получения этой функции (помимо ее разветвления на GitHub или переключения на другое приложение) является отправка комментария на сайте Google Code выше. Надеюсь, с достаточным интересом эта функция вернется в продукт.


2

Последние сборки теперь включают эту функцию по состоянию на 15 марта 2012 года.

Официальный сайт загрузки: http://code.google.com/p/iterm2/downloads/list

Последняя сборка (в настоящее время 26 марта 2012 г.) включает эту функцию.



1

В последней версии iterm2 (я использую Build 2.9.20150812-nightly) есть эта функция, но для того, чтобы она работала с несколькими строками, необходимо включить интеграцию оболочки, как описано на https://gitlab.com/gnachman/ iterm2 / Issues / 3638 .

Чтобы установить последнюю версию iTerm, я использую brew и выполняю следующее:

brew tap caskroom/versions && brew cask install iterm2-nightly


1

Мой ответ проверен в 2019 году на iTerm2.

Перейдите в «Настройки»> «Профили», выберите нужный профиль (может быть профилем по умолчанию, вам придется повторять его для каждого), выберите вкладку «Ключи» и измените поведение клавиш «ВЛЕВО» и «ВПРАВО» (alt). на Esc +

введите описание изображения здесь

Это на самом деле в их FAQ:

В: Как сделать так, чтобы ключ опции / alt действовал как Meta или отправлял коды перехода? A: Перейдите в Настройки> вкладка Профили. Выберите свой профиль слева и откройте вкладку «Клавиатура». Внизу находится набор кнопок, который позволяет вам выбрать поведение клавиши Option. Для большинства пользователей Esc + будет лучшим выбором.

БОНУС

Если вы спрашиваете о Option (Alt) + щелчок, я предполагаю, что вы также хотите, чтобы ваш Option (Alt) + Backspace работал.

В том же интерфейсе (панель «Ключи») нажмите кнопку «Загрузить стиль» и выберите «Редактирование естественного текста». Повторите это для каждого из ваших пресетов.

Теперь у вас будет работать Option + click и Option + backspace.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.