我注意到在bash中的vi模式下(即使用" set -o vi"启用的模式),某些命令,例如" diw",在vim中工作但是不在vi中,不要在bash命令行上工作。是否有一种简单的方法来配置bash,以便其键绑定将支持vim命令?我希望能够在命令行上输入vim命令而无需实际启动vim程序,如this question中所述。
答案 0 :(得分:3)
我知道的最好的方法是使用athame。 在某些情况下,它可能是一种令人惊讶的强大体验。我特别喜欢与repl进行交互。
Athame通过实际的Vim进程路由您的击键来修补您的shell以添加完整的Vim支持。 Athame目前可用于修补readline(由bash,gdb,python等使用)和/或zsh(不使用readline)。
或者我发现使用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"