Я не могу говорить за 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, но он также имеет множество безумных значений по умолчанию для переопределения.