Я не могу говорить за 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-key-sequence (как описано в разделе 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' флажок.
FOO=BARэто одно слово в zsh и 2 слова в bash. Точно так же, если вы установите курсор в конецfoo --barи выполните alt + backspace, в bash у вас будет,foo --а в zsh у вас будетfoo. Zsh добавляет много функций в bash, но он также имеет множество безумных значений по умолчанию для переопределения.