zsh 快捷键“ctrl + A”不起作用

问题描述 投票:0回答:4

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

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

但是,当我这样做时,我得到以下结果

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

虽然我看到其他人都这样做,但在我的系统上似乎有些不同。有什么建议吗?

shell keyboard-shortcuts zsh shortcut
4个回答
60
投票

如果您想知道为什么会发生这种情况:您可能将

$EDITOR
$VISUAL
设置为 vi/vim,这使得 zsh 默认为 vi 键盘映射,而 vi 键盘映射不使用 ctrl+a 来移动插入符号。

bindkey -e
添加到
~/.zshrc
将恢复旧的行为(emacs 键盘映射)。


36
投票

如果您使用默认键盘映射(emacs键盘映射),则无需配置 Ctrl+

A
行为。它符合您的期望。

但是,如果您将 zle 设置为使用

vi
键盘映射,则必须为
keybind
定义
vi-beginning-of-line
。与 Ctrl+E 相同。

因此检查您在 config.php 中设置了哪个键盘映射。如果是 vi,请尝试按 ESC,然后按 ^$ 应该可以执行您想要的操作。


18
投票

zsh.zshrc

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

0
投票

有完全相同的问题,并在我的

.zshrc
文件中找到了这一行:

set -o vi

更改为后

set -o emacs

现在可以使用了。

© www.soinside.com 2019 - 2024. All rights reserved.