iTerm 2: Как установить сочетания клавиш для перехода к началу/концу строки?
Я вижу Ctrl+левый/право переход к началу / концу строки. Как изменить это Cmd+левый/стрелка вправо?
для получения Alt+левый/стрелка вправо работает правильно для слова прыжки следовать в этой статье.
12 ответов:
чтобы перейти между словами и началом / концом строк в 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 ⌘+, и выберите
Profiles
tab (theKeys
вкладка может быть использована, но добавление привязки клавиш к вашему профилю позволяет вам сохранить профиль и синхронизировать его с несколькими компьютерами) иkeys
вкладку и введите следующее:удалить все символы слева от курсора
⌘+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-left в тексте ниже:
- введите [H на старт
или- введите [F для конец строки
для быстрого ознакомления всех, кто хочет перейти к концу строки или началу строки в iTerm2, приведенная выше ссылка http://hackaddict.blogspot.com/2007/07/skip-to-next-or-previous-word-in-iterm.html отмечает, что в iTerm2:
- Ctrl+A, переходит к началу строки, в то время как
- Ctrl+E, переходит к концу строки.
просто, чтобы помочь всем, кто имеет ту же проблему, но специально используя оболочку Zsh с iTerm 2. Оказывается, что ЗШ не читал
/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 → настройки → Профили → Клавиши → Предустановка Загрузки... → Естественное Редактирование Текста → Бум! Голова взрывается"
объяснено в https://aaronaddleman.com/articles/hexcodes-and-iterm/
можно использовать
xxd -psd
получить ключ-код.