Я недавно перешел с bash на zsh, но мне не хватает моих Alt+ LeftArrowKeyи Alt+, RightArrowKeyчтобы переходить туда и обратно по слову за раз.
Прямо сейчас, если я нажимаю Alt+, LeftArrowKeyя возвращаюсь на пару букв, а потом застреваю. Я не буду идти дальше назад, и он не вернется в конец строки с Alt+, RightArrowKeyкак я ожидал. Я даже не могу использовать клавиши со стрелками, чтобы перейти к концу строки, только к предпоследней. Невозможно ввести новые символы в строку или действительно удалить.
Как мне вернуть любимый ярлык?
Я использую Mac OS X, используя Терминал, если это важно.
^[[D
за меня, а ctrl + v сообщал^[OD
. Предложение Ctrl + v сработало, но кошачье - нет. Кроме того, ctrl + v сообщал об одном и том же для alt + <- и alt + ->. Я смог добавить эти два, посмотрев на вывод cat и заменив любой "[[" на "O"^[^[[C
для прямого и^[^[[D
обратного слова, но обновление для них в .zshrc по какой-то причине не сработало.bindkey "^[^[[D" backward-word
иbindkey "^[^[[C" forward-word
в ~ / .zprofile работал для меня!Для всех, кто использует iTerm, независимо от оболочки
На мой взгляд, все предлагаемые здесь решения имеют обратный подход. По сути, вы говорите своей оболочке прослушивать некоторую последовательность esc или другую привязку клавиш, которую вы установили в своем терминале, создавая проблемы совместимости при переключении оболочки (если вы используете SSH в какой-либо другой оболочке, переключитесь с BASH на ZSH и т. Д., И вы потеряете некоторые, если не все ваши сочетания клавиш).
Большинство оболочек имеют набор предварительно связанных последовательностей по умолчанию. Более того, хотя они не на 100% последовательны, они достаточно близки. Итак, самый простой способ, который я нашел для создания привязки клавиш для определенного действия в оболочке, - это указать вашему терминальному приложению привязку к привязкам клавиш по умолчанию, которые согласованы между оболочками.
Я написал сжатое решение для того, чтобы ваш терминал реагировал как можно ближе к родным привязкам клавиш Mac здесь
Откройте настройки iTerm ⌘+ ,и перейдите на
Profiles
вкладку (Keys
вкладку можно использовать, но добавление привязки клавиш к вашему профилю позволяет сохранить ваш профиль и синхронизировать его с несколькими компьютерами) и вложеннуюkeys
вкладку и введите следующее:Переместите курсор на одно слово влево
Переместить курсор на одно слово вправо
И это должно дать вам желаемое поведение не только в ZSH, но и при подключении по SSH к серверу, на котором запущены BASH, irb / pry, node и т. Д.
источник
bindkey | grep forward-word
вы должны увидеть"^[f" forward-word
ответ, но если нет, у вас есть 2 варианта. карту к одному из других возвращенных или добавьте"^[f" forward-word
в свой.zshrc
."^[f"
, по-видимому, наиболее часто используемая привязка дляforward-word
разных оболочек и единственная, установленная по умолчанию в моей версии bash.Добавление следующего в ~ / .zshrc сработало для меня на OSX Mountain Lion.
источник
bindkey "\e\e[D" backward-word
bindkey "\e\e[C" forward-word
В MacOS High Siera 10.13.6 или Mojave 10.14.2 и при использовании iTerm2 с ZSH Чтобы перейти от слов, я должен написать так:
Другие решения не работают
источник
Хотя строго говоря , не отвечая на ваш вопрос, по умолчанию для связывания
forward-word
иbackward-word
являютсяalt-f
соответственно.alt-b
,Это работает везде, не требует , чтобы оставить домашний ряд, и имеет приятный мнемоническое свойство (F = вперед, Ь = назад), а также в соответствии с
ctrl-f
иctrl-b
бытьforward-character
иbackward-character
.Вырви клавиши со стрелками!
источник
Чтобы заставить его работать для меня, я использовал этот ответ , однако мне пришлось поменять коды (слева <-> справа)
⌥ + ← Отправить шестнадцатеричные коды: 0x1b 0x66
⌥ + → Отправить шестнадцатеричные коды: 0x1b 0x62
и добавьте в мои
~/.zshrc
источник
bindkey
вместо этого изменили s, чтобы привязать^[f
кforward-word
, а не кbackward-word
.В Mavericks (10.9.4) код 1; 5 ... поэтому для привязки alt со стрелками у меня есть мой .zshrc, использующий это:
Вы можете использовать CTRL + V, а затем команду, которую хотите использовать
в Йосемити используйте раствор Роба
источник
bindkey "[C" forward-word bindkey "[D" backward-word
В zsh вы можете использовать
bindkey
команду для просмотра сочетаний клавиш.Используйте
bindkey
для изучения параметров, доступных без пользовательских сочетаний клавиш.А именно,
^[b
чтобы переместиться на слово назад и^[f
переместиться на слово вперед.источник