Я вошел в систему на одном из серверов хостинг-провайдера и заметил, что ALT + влево и ALT + вправо перемещаются между словами в приглашении оболочки в GNU Screen.
Какую привязку клавиш мне нужно настроить и где можно получить такое поведение для моей локальной OS X zsh, работающей в iTerm2?
keyboard-shortcuts
zsh
iterm2
key-binding
Микко Охтамаа
источник
источник
FOO=BAR
это одно слово в zsh и 2 слова в bash. Точно так же, если вы установите курсор в конецfoo --bar
и выполните alt + backspace, в bash у вас будет,foo --
а в zsh у вас будетfoo
. Zsh добавляет много функций в bash, но он также имеет множество безумных значений по умолчанию для переопределения.Ответы:
Я нашел решение здесь: https://coderwall.com/p/h6yfda . Скопирует наиболее важные его части на случай, если ссылка отключится.
источник
Вы ищете ключевые слова
backward-word
иforward-word
. Поэтому, если вы находитесь в оболочке, в которой не работают сочетания клавиш, попробуйтеbindkey -L | grep backward-word
проверить, настроены ли они вообще. Больше информации об этом в zshzle (1) .Вы можете вручную установить привязку клавиш, набрав что-то вроде этого:
У меня также были некоторые проблемы с сочетаниями клавиш, и проблема почти всегда заключалась в том, что ключ Option / Alt отправлял что-то отличное от ожидаемого мета-выхода.
источник
emacs-forward-word
иemacs-backward-word
. Разница в том, что вы прыгаете вперед до конца слова и назад к началу слова вместо того, чтобы прыгать всегда в начале слова.Я не могу говорить за iTerm, но вот те сочетания клавиш, которые я использовал для решения этой проблемы в терминале GNOME на Fedora 19 с ZSH 5.0.7 и Oh-my-zsh:
где
\e
== escape-key-sequence (как описано в разделе 4.1.1 )и
[
==O
(заглавные O; как описано в разделе 4.2.1 ), в некоторых случаях. Например, в соответствии сtmux
этой заменой мне необходимо, однако безtmux
этого не требуется никакой замены и[
==[
Коды клавиш для последовательности можно получить, используя
cat
и нажимая нужную последовательность. Например, результаты нажатия<Alt+Right>
должны быть интерпретированы так:^[
==\e
== Последовательность управляющих клавиш[
==[
безtmux
ИЛИ[
==O
(заглавные o) сtmux
1;3
== Я не уверен насчет этого, но это должно логически означать<Alt>
C
== Клавиша со стрелкой вправоЗатем эта последовательность передается
bindkey
в~/.zshrc
файле для сохранения в качестве первого аргумента и связывается , что означает, что нажатие клавиши в первом аргументе будет выполнять определенную команду редактора (или виджет в терминах zsh) для виджета, который в первом строка приведенного выше примераforward-word
.После
~/.zshrc
того, как эти две команды будут добавлены к нему, он должен быть получен с помощью:$ source ~/.zshrc
Теперь одна неприятность в моей системе состоит в том, что эта конкретная комбинация заставляла эмулятор терминала издавать звуковой сигнал каждый раз при выполнении команды, это я исправил, отключив
'Edit'->'Profile Preferences'->'Terminal Bell'
флажок.источник
Что лучше всего помогло мне сделать навигацию в командной строке iTerm2 более интуитивно понятной для меня (я молодой человек, который не вырос в командной строке, но я провел много времени в текстовых редакторах и IDE). чтобы:
Natural Text Editing
опцию в выпадающем меню Presets.По умолчанию ключи редактора более стандартны, и мне не нужно изменять каждую опцию отдельно.
источник
Я предлагаю вам использовать
zkbd
для настройки сочетаний клавиш. Я использую его и Alt+ Left/ Alt+ Rightотлично работает на iTerm2. Подробностиzshcontrib(1)
смотрите на zkbd.источник