某些 zsh 按键绑定在重启后不再起作用

某些 zsh 按键绑定在重启后不再起作用

重新启动后,我遇到了这个奇怪的问题,其中一些 zsh 键绑定(如 CTRL-A 和 CTRL-E)不起作用,而是分别打印^A^E

其他键绑定(如 CTRL-U)工作正常。我确信这是 zsh 的问题,而不是我的终端(urxvt)的问题,因为我可以启动 bash 并且键绑定工作正常。我怀疑我的 .zshrc 是问题所在,因为我经常关闭并重新打开终端,因此重新加载配置。

重新启动之前我做的最后一件事是编译内核。它没有执行,所以我恢复到已知的工作内核。我非常怀疑损坏的内核与它有任何关系,因为它无法在用户空间发生任何事情之前加载。

相关bindkey输出

"^A"-"^C" self-insert
...
"^E"-"^F" self-insert
...
"^U" vi-kill-line
...

答案1

看起来行编辑器已配置为使用该vi模式,而您似乎正在期待该emacs模式。

在 中zsh,引用手册:

如果 VISUAL 或 EDITOR 环境变量之一在 shell 启动时包含字符串“vi”,那么它将是“viins”,否则它将是“emacs”。 bindkey 的 -e 和 -v 选项提供了一种覆盖此默认选择的便捷方法。

所以,在这里添加

bindkey -e

即使您~/.zshrc首选的编辑emacs器是vi// vim/ elvis...vimacs

相关内容