我最近从bash切换到zsh shell。更准确地说,oh-my-zsh 非常好,但我经常使用的捷径;跳到行的开头/结尾不再起作用了。从docs它应该是
ctrl + A --> beginning
ctrl + E --> end
然而,当我这样做时,我得到以下
$~> my-command
$~> my-command^A # did a ctrl + A here
虽然我看到其他人都在工作,但在我的系统上似乎有些不同。有什么建议吗?
答案 0 :(得分:24)
如果使用默认键映射(emacs
键映射),则不必配置 Ctrl + A 行为。它符合您的期望。
但是,如果您将zle设置为使用vi
键盘映射,则必须为keybind
定义vi-beginning-of-line
。同样适用于 Ctrl + E 。
请检查您在配置中设置的键映射。如果它是vi,尝试按 ESC 然后 ^ 和 $ 应该做你想要的。
答案 1 :(得分:7)
如果您想知道为什么会发生这种情况:您可能将$EDITOR
或$VISUAL
设置为vi / vim,这使得zsh默认为vi键映射而不使用ctrl + a来移动插入符号。
将bindkey -e
添加到~/.zshrc
将恢复旧行为(emacs键映射)。
答案 2 :(得分:6)
zsh .zshrc
bindkey "^A" vi-beginning-of-line