我在我的末尾添加了以下代码.zshrc
:
export VISUAL=vim
autoload edit-command-line; zle -N edit-command-line
bindkey -M vicmd v edit-command-line
当我重新启动 shell 时,它工作正常,但之前的所有键绑定都停止工作。
我无法搜索历史记录(CTRL-R)并且我无法在命令行中移动(CTRL-A/E) 例如。
也许我把这些命令放在了错误的地方?
任何帮助,非常感谢!
答案1
当您设置VISUAL
为包含 的字符串时vi
,zsh 使用 Vi键位图( vicmd
, viins
, ...) 具有 Vi 风格的默认键绑定。否则,zsh 使用emacs
具有 Emacs 样式默认键绑定的键盘映射。
如果您想在 shell 中使用 Emacs 风格的命令行编辑,但使用 Vim 作为您最喜欢的编辑器,请添加bindkey -e
给你的.zshrc
.
如果您想使用 Vi 风格的命令行编辑,但使用 Emacs 风格默认设置中的一些绑定,则必须自己定义这些绑定。^R
在 Emacs 模式下运行history-incremental-search-backward
未绑定在 Vi 模式下。 Vi 命令模式下搜索的默认键绑定/
是vi-history-search-backward
并?
为vi-history-search-forward
。要移动到命令行的开头或结尾,您可以像往常一样使用0
,^
和。$