如何为 zsh 设置 Vi 编辑模式

Rad*_*dex 25 vi zsh

我想在打开 shell 时自动在 zsh 中将 vi 设置为编辑模式(我正在使用 oh-my-zsh),所以在我开始时我.zshrc尝试了以下代码:

set -o vi

或者

bindkey -v

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

如果我在 shell 中尝试了这两个命令之一,它就可以工作。

基本上我希望 zsh 在 vi​​ 编辑模式下启动。

任何想法如何解决这个问题?

Sim*_*mba 31

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

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

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

  • 这似乎有解除绑定`ctrl + R`的不利作用 (2认同)
  • 也许我遗漏了一些东西,但如果你按 esc 进入命令模式,你就可以像在 vi 中一样进行搜索。 (2认同)

olo*_*ore 19

如果您使用的是https://ohmyz.sh/,您可以添加vi-mode到 ~/.zshrc 中的插件列表:

plugins=(git vi-mode)
Run Code Online (Sandbox Code Playgroud)

  • 要获取光标模式指示器,请添加 `INSERT_MODE_INDICATOR="%F{yellow}+%f" ` 并将 `jj` 映射到 `esc` 添加 `bindkey -M viins 'jj' vi-cmd-mode` (4认同)

J.T*_*.T. 12

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

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

添加此插件后,您可以使用 vi 模式输入,如下所示:

演示

  • 需要明确说明您是该项目的开发人员这一事实,以免该答案成为垃圾邮件 (2认同)