iTerm 2: Как установить сочетания клавиш для перехода к началу/концу строки?
Я вижу Ctrl+левый/право переход к началу / концу строки. Как изменить это Cmd+левый/стрелка вправо?
для получения Alt+левый/стрелка вправо работает правильно для Word jumping follow в этой статье.
12 ответов
добавьте в iTerm2 следующие сочетания клавиш профиля
FOR ACTION SEND
⌘← "SEND HEX CODE" 0x01
⌘→ "SEND HEX CODE" 0x05
⌥← "SEND ESC SEQ" b
⌥→ "SEND ESC SEQ" f
вот визуальный для тех, кто в нем нуждается
для перехода между словами и началом / концом строк в iTerm2 выполните следующие действия:
- iTerm2 -> настройки (⌘ + ,)
- откройте вкладку "ключи"
- добавьте следующие глобальные сочетания клавиш
переместить курсор на одно слово влево.
- Сочетания Клавиш: ⌥ + ←
- Действие: Отправить Hex Код
- код:
0x1b 0x62
переместить курсор на одно слово вправо
- Сочетания Клавиш: ⌥ + →
- Действие: Отправить Шестнадцатеричный Код
- код:
0x1b 0x66
переместить курсор в начало строки
- Сочетания Клавиш: ⌘ + ←
- Действие: Отправить Hex Код
- код:
0x01
переместить курсор в конец строки
- Сочетания Клавиш: ⌘ + →
- Действие: Отправить Шестнадцатеричный Код
- код:
0x05
удалить слово
- Сочетания Клавиш: ⌥ + Delete удалить
- Действие: Отправить Шестнадцатеричный Код
- код:
0x1b 0x08
удалить строку
- Сочетания Клавиш: ⌘ + Delete удалить
- Действие: Отправить Шестнадцатеричный Код
- код:
0x15
отменить
- Сочетания Клавиш: ⌘ + z
- Действие: Отправить Шестнадцатеричный Код
- код:
0x1f
Не забудьте удалить предыдущие привязки:
- откройте вкладку "профили"
- нажмите вкладку "ключи"
- удалить сопоставления для комбинаций клавиш ⌥ + ← и ⌥ + →
я вижу, что уже есть много хороших ответов, но это должно обеспечить наиболее близкую к родной функциональности OSX, насколько это возможно, не только в вашей оболочке. Я проверил, что это работает в сеансах ZSH, Bash, node, python-i, iex и irb/pry (используя RB-readline gem для readline, но должно работать для всех).
откройте Настройки iTerm ⌘+, и выберите (том Keys
tab можно использовать, но добавление привязки к вашему профилю позволяет сохранить профиль и синхронизировать его с несколькими компьютерами) и keys
sub-tab и введите следующее:
удалить все символы слева от курсора
⌘+Delete удалить Отправить Hex-Кодов:
0x15
более совместимый, но функциональность иногда заключается в удалении всей строки, а не только символов слева от курсора. Я лично использую это, а затем перепишите мой zsh bindkey для^U
удалить только слева от курсора (см. ниже).или
0x18 0x7f
менее совместим, не работает в узле и не будет работать в zsh по умолчанию,см. ниже, чтобы исправить zsh (bash / irb / pry должен быть в порядке), выполняет желаемую функциональность, когда она работает.
удалить все символы справа от курсора
⌘+fn+Delete удалить или ⌘+удалить→ Отправить Hex-Кодов:
0x0b
удалить одно слово слева от курсора
⌥+Delete удалить Отправить Hex-Кодов:
0x1b 0x08
перерывы в IEX эликсира, кажется, работают нормально вездеили
0x17
строительство везде, но не останавливается на обычных разрывах слов в IRB и вместо этого удаляет, пока не увидит буквальное пространство.
удалить одно слово справа от курсора
⌥+fnDelete удалить или ⌥+удалить→ Отправить Hex-Кодов:
0x01b 0x64
переместить курсор в начало строки
⌘+← Отправить Hex-Кодов:
0x01
переместить курсор в конец строки
⌘+→ Отправить Hex-Кодов:
0x05
переместить курсор на одно слово влево.
⌥+← Отправить Hex-Кодов:
0x1b 0x62
переместить курсор на одно слово право
⌥+→ Отправить Hex-Кодов:
0x1b 0x66
отменить
⌘+z Отправить Hex-Кодов:
0x1f
повтор обычно не привязан к bash, zsh или readline, поэтому мы можем установить его в неиспользуемый шестнадцатеричный код, который мы можем исправить в zsh
⇧+⌘+Z или ⌘+ y Отправить Hex-Кодов:
0x18 0x1f
теперь, как исправить все, что не работает
для zsh вы можете настроить привязку для еще не функционального ⌘+Delete удалить и ⇧+⌘+Z/⌘+ y работает:
# changes hex 0x15 to delete everything to the left of the cursor,
# rather than the whole line
$ echo 'bindkey "^U" backward-kill-line' >> ~/.zshrc
# binds hex 0x18 0x7f with deleting everything to the left of the cursor
$ echo 'bindkey "^X\x7f" backward-kill-line' >> ~/.zshrc
# adds redo
$ echo 'bindkey "^X^_" redo' >> ~/.zshrc
# reload your .zshrc for changes to take effect
$ source ~/.zshrc
я не могу найти решение для добавления повтора в bash или readline, поэтому, если кто-нибудь знает решение для любого из них, прокомментируйте ниже, и я попытаюсь добавить их.
для тех, кто ищет таблицу поиска о том, как конвертировать последовательности ключей в hex, я нахожу в этой таблице очень полезная.
следуйте инструкциям, перечисленным выше, для настройки ключевых настроек в iterm2.
- создать новый shorcut ключ
- выберите "Отправить escape-последовательность" в качестве действия
- затем, чтобы установить cmd-слева в тексте ниже:
- Enter [H на старт
или - Enter [F для конец строки
- Enter [H на старт
в iTerm 3.0.12 вы можете переключиться на Natural Text Editing
настройки:
iTerm → настройки → профили → ключи
предупреждение поскольку это предустановка, она может переопределить ключи, которые вы связали раньше. Поэтому лучше сохранить текущие привязки ключей перед применением пресета.
для быстрой справки любого, кто хочет перейти к концу строки или началу строки в iTerm2, приведенная выше ссылка http://hackaddict.blogspot.com/2007/07/skip-to-next-or-previous-word-in-iterm.html отмечает, что в iTerm2:
- Ctrl+A, переходит к началу строки, в то время как
- Ctrl+E, прыгает в конец строки.
просто, чтобы помочь всем, кто имеет ту же проблему, но специально используя zsh shell с iTerm 2. Оказывается, что Zsh не читал /etc/inputrc
правильно, и поэтому не понимаю какие клавиши настраиваются через настройки!
чтобы исправить это, вам нужно добавить некоторые привязки клавиш к вашему , например:
# key bindings
bindkey "\e[1~" beginning-of-line
bindkey "\e[4~" end-of-line
обратите внимание на обратные косые черты в приведенном выше примере перед "e", связанная статья не показывает их, поэтому добавьте их в ваш .zshrc
файл при добавлении Привязок.
привязки emacs старой моды все еще могут работать в терминале iterm2 и os x:
настройки - > профили - > клавиши (вкладка sub в профилях)
- Set
Left/Right option <kbd>⌥</kbd> key acts as +Esc
(аналогично в OS X terminal)
Это должно позволить alt-f и alt-b для перемещения слов по словам. (До сих пор ctrl-a и ctrl-e всегда работать обычно)
Если установлен как meta
эти старые привязки будут работать, пока некоторые привязки iterm2 недоступны.
bind -p
покажет список связанных экранированных ключей в вашей оболочке, что может помочь дать вам больше идей / условий поиска.
Как поясняется в здесь, вы можете сделать это с простым шагам:
по умолчанию, скачки слов (опция + → или ←) и удаление слов (опция + backspace) не работает. Чтобы включить их, перейдите в раздел " iTerm → настройки → Профили → Клавиши → Предустановка Загрузки... → Естественное Редактирование Текста → Boom! Голова взрывается"
объяснено в https://aaronaddleman.com/articles/hexcodes-and-iterm/
можно использовать xxd -psd
получить ключ-код.
для меня сработала следующая комбинация:
| Key Action Esc+ End result |
|-----------------------------------------------------|
| ⌘← Send Escape Sequence a Send ^[ a |
| ⌘→ Send Escape Sequence e Send ^[ e |