Zsh shortcut 'ctrl + A' не работает

Недавно я переключился с bash на zsh shell. Точнее, oh-my-zsh Очень приятно, но ярлык я чаще всего использую; переход к началу/концу строки больше не работает. Из docs должно быть

ctrl + A --> beginning
ctrl + E --> end

Однако, когда я делаю это, я получаю следующее

$~> my-command
$~> my-command^A   # did a ctrl + A here

Хотя я вижу, что это работает всеми остальными, в моей системе что-то кажется другим. Любые предложения, что это может быть?

Ответы

Ответ 1

вам не нужно настраивать поведение Ctrl + A, если вы используете стандартную комбинацию клавиш (emacs keymap). Он делает то, что вы ожидаете.

Однако, если вы установили zle для использования vi keymap, вы должны определить keybind для vi-beginning-of-line. то же самое для Ctrl + E.

Итак, проверьте, какая карта была настроена в конфигурации. Если это было vi, попробуйте нажать ESC, затем ^ и $ должны делать то, что вы хотите.

Ответ 2

Если вам интересно, почему это произошло: у вас, вероятно, для $EDITOR или $VISUAL установлено значение vi/vim, в результате чего zsh по умолчанию использует карту ключей vi, которая не использует ctrl + a для перемещения каретки.

Добавление bindkey -e в ~/.zshrc восстановит старое поведение (~/.zshrc emacs).

Ответ 3

zsh.zshrc

bindkey "^A" vi-beginning-of-line