Я не могу говорить за 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' флажок.