我最近从 bash 切换到 zsh shell。更准确地说,oh-my-zsh 非常好,但是我最常使用的快捷方式;跳到行的开头/结尾不再起作用。从 docs 应该是
ctrl + A --> beginning
ctrl + E --> end
但是,当我这样做时,我得到以下结果
$~> my-command
$~> my-command^A # did a ctrl + A here
虽然我看到其他人都这样做,但在我的系统上似乎有些不同。有什么建议吗?
如果您想知道为什么会发生这种情况:您可能将
$EDITOR
或 $VISUAL
设置为 vi/vim,这使得 zsh 默认为 vi 键盘映射,而 vi 键盘映射不使用 ctrl+a 来移动插入符号。
将
bindkey -e
添加到 ~/.zshrc
将恢复旧的行为(emacs 键盘映射)。
如果您使用默认键盘映射(emacs
键盘映射),则无需配置 Ctrl+
A行为。它符合您的期望。
但是,如果您将 zle 设置为使用
vi
键盘映射,则必须为 keybind
定义 vi-beginning-of-line
。与 Ctrl+E 相同。
因此检查您在 config.php 中设置了哪个键盘映射。如果是 vi,请尝试按 ESC,然后按 ^ 和 $ 应该可以执行您想要的操作。
zsh.zshrc
bindkey "^A" vi-beginning-of-line
有完全相同的问题,并在我的
.zshrc
文件中找到了这一行:
set -o vi
更改为后
set -o emacs
现在可以使用了。