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.