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

вот визуальный для тех, кто в нем нуждается

iTerm add key visual


для перехода между словами и началом / концом строк в 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.

  1. создать новый shorcut ключ
  2. выберите "Отправить escape-последовательность" в качестве действия
  3. затем, чтобы установить cmd-слева в тексте ниже:
    • Enter [H на старт
      или
    • Enter [F для конец строки

в iTerm 3.0.12 вы можете переключиться на Natural Text Editing настройки:

enter image description here

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 |