Я не могу говорить за iTerm, но вот те сочетания клавиш, которые я использовал для решения этой проблемы в терминале GNOME на Fedora 19 с ZSH 5.0.7 и Oh-my-zsh:
bindkey "\e[1;3C" forward-word
bindkey "\e[1;3D" backward-word
где \e
== последовательность escape-ключа (как описано в разделе 4.1.1)
и [
== O
(прописные O; как описано в разделе 4.2.1), в некоторых случаях. Например, под tmux
эта замена мне необходима, однако без tmux
требуется, чтобы замена не делалась и [
== [
Коды клавиш для последовательности можно получить, используя cat
и нажав нужную последовательность. Например, результаты нажатия <Alt+Right>
должны интерпретироваться так:
$ cat
^[[1;3C
^[
== \e
== Последовательность управляющих клавиш
[
== [
без tmux
ИЛИ [
== O
(заглавные o) с tmux
1;3
== Я не уверен насчет этого, но это должно логически означать <Alt>
C
== Клавиша со стрелкой вправо
Затем эта последовательность передается bindkey
в файле ~/.zshrc
для персистентности в качестве первого аргумента и связывается, что означает, что нажатие клавиши в первом аргументе выполнит определенную команду редактора (или виджет в терминах zsh) для виджета , что в первой строке приведенного выше примера является forward-word
.
~/.zshrc
должен быть повторно получен после того, как эти две команды добавлены к нему:
$ source ~/.zshrc
Теперь одна неприятность в моей системе заключается в том, что эта конкретная комбинация заставляла эмулятор терминала издавать звуковой сигнал каждый раз при выполнении команды, это я исправил, отключив
'Edit'->'Profile Preferences'->'Terminal Bell'
флажок.