是否可以在终端中进行 vim 键绑定?

Som*_*DOS 58 shell bash vim zsh terminal

我已经习惯了 vim 绑定(比如按 w 转到单词,按 dw 删除单词等等)和它的模式(插入、正常、视觉),并且出于好奇想知道:是否有一些这种从vim到我的终端的模式和绑定行为的实现方式?

有插入模式,普通模式等等...

Sha*_*off 67

它有插入和普通模式(插入模式是默认的,普通模式转义)。

在vi 普通模式下,您可以启动完整的 $EDITOR 来编辑当前行v(当 bash 在emacs 模式下使用时也可以实现C-x C-e)。

在 bash 中:set -o vi您可以在命令行中仅针对此会话运行它或将其添加到您的 .bashrc 文件中。

许多程序使用readline的输入,你可以做任何他们通过你的设置使用VI风格的按键绑定.inputrc与

set editing-mode vi
set keymap vi
Run Code Online (Sandbox Code Playgroud)

在 zsh 中,如果您更改EDITOR环境变量,shell 将匹配它。

  • 我注意到光标外观在具有 vi 键绑定的不同模式 bash 中没有改变。有没有办法让它做到这一点?最好能直观地指示我所处的模式。 (8认同)
  • 请注意,在 OS X 上,您需要将 `put -o vi` 放在 ~/.bash_profile 而不是 ~/.bashrc 。 (3认同)
  • 对于视觉指示器,您可以在您的 `.inputrc 中放置 `set show-mode-in-prompt on`、`set vi-ins-mode-string "+"` 和 `set-cmd-mode-string ":"` ` 文件。 (3认同)
  • @Will 那行得通,但有一些变化。即,我添加了:```set show-mode-in-prompt on``` ```set vi-ins-mode-string "+"``` ```set vi-cmd-mode-string ": "``` (3认同)
  • @Somebody:不是`.vimrc`,因为您仍在使用shell 的内置编辑器,但是您可以在[`.inputrc`](http://cnswww.cns.cwru.edu/php/chet) 中配置键绑定/readline/rluserman.html#SEC9) 用于所有 readline 应用程序(例如 bash),在 `.bashrc` 中用于 bash,在 `.zshrc` 中用于 zsh。 (2认同)