vim更改:x函数删除缓冲区而不是保存和退出

eps*_*lbe 13 vim remap

我想:x在vim gui-mode中设置,delete buffer因为我总是杀死整个gvim,这有点烦人.我知道我可以专门设置gui问题,if has("gui running")但不知道如何重新映射:x

提前致谢

ps.:也许标签/术语remap是错误的,但我不知道正确的术语,这就是谷歌没有提供任何帮助的原因.

Pet*_*ker 28

我发现最安全的替代方法是使用表达式缩写:

cnoreabbrev <expr> x getcmdtype() == ":" && getcmdline() == 'x' ? 'bd' : 'x'
Run Code Online (Sandbox Code Playgroud)

这将确保缩写只会扩大到bd时候:x使用,否则只是扩大到x.

如需更多帮助:

:h map-<expr>
:h getcmdtype()
:h getcmdline()
Run Code Online (Sandbox Code Playgroud)

经过进一步检查,看起来有一个插件正是由Hari Krishna Dara执行的,名为cmdalias.vim.它使用了上述技术的变体.