bash:vim模式而不是vi模式?

时间:2017-09-11 18:10:52

标签: bash vim vi

我注意到在bash中的vi模式下(即使用" set -o vi"启用的模式),某些命令,例如" diw",在vim中工作但是不在vi中,不要在bash命令行上工作。是否有一种简单的方法来配置bash,以便其键绑定将支持vim命令?我希望能够在命令行上输入vim命令而无需实际启动vim程序,如this question中所述。

3 个答案:

答案 0 :(得分:3)

我知道的最好的方法是使用athame。 在某些情况下,它可能是一种令人惊讶的强大体验。我特别喜欢与repl进行交互。

  

Athame通过实际的Vim进程路由您的击键来修补您的shell以添加完整的Vim支持。 Athame目前可用于修补readline(由bash,gdb,python等使用)和/或zsh(不使用readline)。

enter image description here

或者我发现使用eshell的spacemacs是一个合理的功能,如果奇怪的解决方案。

答案 1 :(得分:1)

首先," vi模式"你得到set -o vi不是vi本身。它是内置于readline中的vi行为的不完全近似,readline是bash引用的命令行编辑库。

其次,因为它不完整,没有任何理由期望每个 vi命令都可以工作。

第三,不,没有" vim模式"因此,没有理由期望任何 vim命令工作。

第四,如果你绝对想要使用类似Vim的命令编辑当前的命令行,为什么不要一直走...并且实际使用Vim:

<C-x><C-e>

尽管如此,$ man readline告诉您自定义其行为和添加绑定所需的一切。

答案 2 :(得分:0)

将 vi 命令模式 diw 添加到任何使用 readline(例如 bash)的东西可以通过将它添加到你的 ~/.inputrc 来完成:

set keymap vi-command
"diw": "bde"