zsh快捷方式'ctrl + A'无效

Jea*_*eri 17 shell zsh keyboard-shortcuts shortcut

我最近从bash切换到zsh shell.更确切地说,哦-my-zsh 非常好,但是我经常使用的快捷方式; 跳到行的开头/结尾不再起作用了.从文档应该是

ctrl + A --> beginning
ctrl + E --> end
Run Code Online (Sandbox Code Playgroud)

但是,当我这样做时,我得到以下内容

$~> my-command
$~> my-command^A   # did a ctrl + A here
Run Code Online (Sandbox Code Playgroud)

虽然我看到其他人都在工作,但在我的系统中,似乎有些不同.有什么建议吗?

Ken*_*ent 24

如果使用默认键映射(keymap),则不必配置Ctrl+ A行为emacs.它符合您的期望.

但是,如果将zle设置为使用vikeymap,则必须定义keybindfor vi-beginning-of-line.同样的Ctrl+ E.

因此,请检查您在配置中设置的键映射.如果是六,试着同时按下ESC然后^$应该做你想要什么.

  • @JeanlucaScaljeri您不知道您使用的是哪个密钥图?`bindkey -v`bind vi,`bindkye -e`绑定emacs (3认同)

Nav*_*vin 10

如果您想知道为什么会发生这种情况:您可能已经$EDITOR$VISUAL设置为vi/vim,这使得zsh默认为vi键映射,它不使用ctrl + a来移动插入符号.

添加bindkey -e~/.zshrc将恢复原来的行为.


zza*_*per 6

zsh .zshrc

bindkey "^A" vi-beginning-of-line
Run Code Online (Sandbox Code Playgroud)

  • 对于想要保留vim键映射的人来说,这是正确的解决方案.使用`bindkey'^ E"vi-end-of-line`将ctrl + E映射到行尾行为. (3认同)