Клавиши Emacs в zsh не работают (Ctrl-A, Ctrl-E)

17

Мои сочетания клавиш в Emacs zshне работают ( CtrlA, CtrlE). Я использую zshна OS X.

Они могут быть связаны с чем-то другим. В настоящее время я пользуюсь oh-my-zsh .

И мой .zshrcзакончится здесь .

введите описание изображения здесь

Такехиро Адачи
источник
@ Рене Готово! спасибо за совет! : D
Такехиро Адачи
На снимке экрана я понял, что вы на Mac OS X? У меня такая же проблема там в терминале. Ctrl + A / E / K уже используются в этой ОС (для использования в текстовых полях в GUI), что может объяснить это.
Хенно
@ Не правда ли? Я использую zsh atm, и когда я использую bash, ctrl + a (переход к первому символу строки) и ctrl + e (переход к концу строки) работают нормально. но когда я использую zsh, это похоже на скриншот. так что я думаю, что проблема в zsh, а не в ОС :(
Такехиро Адачи
@ TakehiroAdachi твое исправление работало на меня тоже!
Henno
@ Хенно Отлично: D!
Такехиро Адачи

Ответы:

21

Я решил проблему. Похоже, oh-my-zsh переопределяет комбинации клавиш по умолчанию.

Когда я добавил строку ниже в конце моего .zshrc, CtrlEи CtrlAработал:

bindkey -e
Такехиро Адачи
источник
отлично, у меня тоже сработало!
Henno
5

Вообще говоря, вы можете найти код ключа, набрав CtrlVи ключ. Затем вы можете использовать эту клавишу с, bindkeyчтобы сопоставить ее с функциональностью zshклавиатуры (например beginning-of-line).

В вашем конкретном случае это было бы CtrlV CtrlAи CtrlV CtrlE.

Затем вы можете поместить код в вашу .inputrcсистему /etc/inputrcили в вашу .zshrc:

bindkey '^A' beginning-of-line
bindkey '^E' end-of-line

Это работает и для других ключей. Например, у меня были некоторые проблемы с Homeи End.

Вы должны быть в состоянии использовать этот трюк в любой терминальной сессии: tty,

TikTak
источник