105

Я читал руководство по Linux и заметил, что в нем сказано, что я могу использовать control+left и control+right для перемещения вперед и назад в терминале во время редактирования.

«Нажатие Ctrl плюс клавиша со стрелкой влево или вправо перемещает слово назад или вперед за раз, также как и нажатие клавиши Esc, а затем B или F.»

На OS X control+left и control+right обычно контролируют пробелы. Я их отключил. Я также попытался использовать панель настроек для установки сочетаний клавиш:

Однако это не работает и вызывает эту ошибку:

Также, если я нахожусь в iTerm и использую alt+escape тогда B или F персонаж перемещается взад и вперед. Это происходило до того, как какие-либо изменения в моем конфиге. Но я бы очень хотел иметь возможность использовать управление + клавиши со стрелками.

7 ответов7

132

удар

Просто добавьте следующее в ~/.inputrc:

"\e[1;5D": backward-word
"\e[1;5C": forward-word

Посмотрите этот заархивированный пост вики для более подробного объяснения. Если вы хотите использовать вместо клавиши « alt» клавишу alt (например, поведение OS X по умолчанию), используйте:

"\e[1;9D": backward-word
"\e[1;9C": forward-word

ЗШ

zsh по умолчанию не использует библиотеку readline и поэтому не читает ~/.inputrc . Чтобы получить такую же функциональность, вы можете добавить следующее в ваш ~/.zshrc - здесь снова будет использоваться клавиша alt :

bindkey -e
bindkey '^[[1;9C' forward-word
bindkey '^[[1;9D' backward-word

См. Эту документацию для получения дополнительной информации о встроенном редакторе строк zsh (zle).


Почему это? Вы настроили свой профиль для использования значений по умолчанию Xterm:

Вот почему вам нужно "поймать" эту последовательность и сказать readline что делать.


Если вышеупомянутое все еще не работает, и вы используете OS X 10.9 (Mavericks) или там, где-то около, вам, вероятно, нужно отключить глобальные сочетания клавиш управления полетами, которые не позволяют клавишам Ctrl + стрелка достигать iTerm, даже если само управление полетами отключено. Вы можете сделать это из Системных настроек → Клавиатура → Сочетания клавиш → Управление полетом:

настройки клавиатуры для управления полетом

38

Рабочий раствор для зш. Простой, понятный, из коробки.

  1. Перейти к: ⌘, Preferences → Profiles → Keys → Keyboard Behavior

  2. Загрузить пресет: Natural Text Editing

Загрузить пресет "Редактирование естественного текста"

7

На самом деле, я обнаружил, что самым простым решением было перейти к настройкам моего профиля (находится в разделе «Профили / ключи»), убрав ярлыки профиля, вызывающие проблемы (так как профиль переопределяет глобальный в iTerm), в моем случае alt+left и alt+right, а затем глобальный ярлыки отлично сработали для меня!

Кроме того, если вы используете OS X, вероятно, лучше придерживаться общесистемных сочетаний клавиш, то есть вместо этого использовать alt+left и alt+right вместо этого, поскольку в терминале другое поведение в конечном итоге неизбежно вызовет боль.

Помимо этого решения chmac использовать Better Touch Tool был элегантный способ изменить поведение control+arrow только в iterm.

7

Я использовал другой подход. Используя BetterTouchTool, я запрограммировал специальное сочетание клавиш для iTerm2. Когда я нажимаю alt-left в iTerm2, он отправляет сочетание клавиш ctrl-left с действием "Отправить сочетание клавиш для конкретного приложения". Приложение iTerm2. Я сделал то же самое для alt-right, сопоставленного ctrl-right.

Эффект заключается в том, что нажатие alt-left или alt-right в iTerm отправляет ctrl-left или ctrl-right непосредственно в iTerm2, минуя обычный общесистемный ярлык для перемещения рабочего стола влево или вправо. Таким образом, я получаю типичное поведение mac в iTerm2, на локальных терминальных сессиях, но также и на удаленных сессиях SSH, и я могу использовать стандартный ctrl-left / ctrl-right для перемещения на другие рабочие столы. Я написал это здесь:

http://www.callum-macdonald.com/2013/04/17/ctrl-left-and-ctrl-right-on-iterm2/

6

Я исправил это так:

В верхнем меню; идти к

Profiles 
-> Open profiles... 
-> Edit profiles... (button) 
-> Keys (tab) 
-> Load Preset... (dropdown) 
->  Choose "Natural text editing". Done! :-)
2

Этот пост учит этому и другим ярлыкам as ← Удалить, чтобы удалить слово:

http://elweb.co/making-iterm-2-work-with-normal-mac-osx-keyboard-shortcuts/

1

Вам нужно перейти на вкладку Profiles и удалить отображение для alt+left и alt+right, так как по умолчанию выводятся некоторые шестнадцатеричные значения.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .