重新映射'wq'以保存和关闭缓冲区而不是保存并退出

时间:2010-11-07 00:02:24

标签: vim macvim

Vim新手在这里。

当我':wq'我希望它保存并删除缓冲区而不是保存并退出。 同样点击':q'会执行':bd'而不是。

有什么建议吗?谢谢!

2 个答案:

答案 0 :(得分:10)

Vim允许在包括命令行模式在内的所有模式中为命令添加键映射,因此您可以定义这些映射(在.vimrc中):

:cnoreabbrev wq w<bar>bd
:cnoreabbrev q bd

命令告诉Vim在命令行中按 w q 必须扩展为w|bd,同样地, q bd。有关详细信息,请参阅:help key-mapping

答案 1 :(得分:0)

签出Sayonara plugin

我尝试了另一个答案,但是它缺少一个用例。当我关闭最后一个缓冲区时,我希望它关闭Vim,就像常规的:q命令一样。 :bd只会为您留下空白窗口,没有缓冲区。

以下是映射,根据其他答案改编而成:

" Prevent accidental closing of all buffers when doing :wq or :q
cnoreabbrev wq w<bar>Sayonara
cnoreabbrev  q       Sayonara