如何为 zsh 设置 Vi 编辑模式

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

我想在打开 shell 时自动启动时在 zsh 中将 vi 设置为编辑模式(我正在使用 oh-my-zsh),所以在我的

.zshrc
开始时我尝试了以下代码:

set -o vi

bindkey -v

但是在 shell 中按 Enter 键时我无法进入 vi 模式。

如果我在 shell 中尝试了这两个命令之一,它就会起作用。

基本上我希望 zsh 以 vi 编辑模式启动。

有什么想法可以解决这个问题吗?

zsh vi
3个回答
60
投票

bindkey -v
足以在ZSH中启用vi模式。如果您担心该设置会被另一个插件覆盖,请将设置放在您的
~/.zshrc
的底部。

开启vi模式后,默认进入“插入”模式。要进入“正常”模式,请使用 Esc。和 ia 切换回“插入”模式。

顺便说一句,softmoth/zsh-vim-mode是我在 ZSH 中使用过的最强大的 vim 模式插件。

使用

bindkey -v
可以接管诸如使用 control+Rcontrol+S 进行历史搜索等功能。要恢复该特定行为,请在
bindkey -v
之后添加以下行:

bindkey ^R history-incremental-search-backward 
bindkey ^S history-incremental-search-forward

其他绑定可以在 ZSH 手册标准小部件部分找到。


37
投票

如果您使用 https://ohmyz.sh/,您可以将

vi-mode
添加到 ~/.zshrc 中的插件列表中:

plugins=(git vi-mode)

11
投票

如果你不介意在 zsh 中使用 vi 模式插件,这里有一个更好的选择,我写的,可以快速实现它。

zsh-vi-mode:ZSH 更好、更友好的 vi(vim) 模式插件。

添加此插件后,就可以像这样使用vi模式输入了:

demo

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