iTerm 2: Как установить сочетания клавиш для перехода к началу/концу строки?


Я вижу Ctrl+левый/право переход к началу / концу строки. Как изменить это Cmd+левый/стрелка вправо?

для получения Alt+левый/стрелка вправо работает правильно для слова прыжки следовать в этой статье.

12 288

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 +, и выберите Profiles tab (the Keys вкладка может быть использована, но добавление привязки клавиш к вашему профилю позволяет вам сохранить профиль и синхронизировать его с несколькими компьютерами) и 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.

  1. создать новый ключ shorcut
  2. выберите "Отправить escape-последовательность" в качестве действия
  3. затем, чтобы установить cmd-left в тексте ниже:
    • введите [H на старт
      или
    • введите [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 с 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 получить ключ-код.

для меня сработала следующая комбинация:
| Key Action Esc+ End result | |-----------------------------------------------------| | Send Escape Sequence a Send ^[ a | | Send Escape Sequence e Send ^[ e |