Vim-airline关闭缓冲区/退出vim

时间:2015-01-26 23:20:25

标签: vim vim-airline

对于vim和vim-airline,我有一种情况,我希望能够关闭缓冲区(如果存在),如果不关闭vim。

因为速度原因,我首先将:x重新映射到;x

nnoremap : ;

然后我映射;x以关闭使用vim-airline

打开的缓冲区
nnoremap :x :bp <BAR> bd #<CR>

现在问题是当我最终关闭所有缓冲区时,我无法使用;x来退出vim。

有没有办法检查vim-airline中是否存在缓冲区并关闭它? 看到this post,但更多的是NERDTree。

1 个答案:

答案 0 :(得分:1)

问题:nnoremap : ;将更改:键以调用;命令的原始值,即跳至f匹配的下一个字符,{{ 1}},Ft。如果您想使用T,则需要重新映射反向:;x

然后

nnoremap ; :会将nnoremap :x ...的原始值用于:,所以一切都应该正常。或者,安全性较低,您可以:x调用重新定义的nmap ;x ...值(如果您指定了:,也可以重新定义x的值,{ {1}},map! x或其非递归变体。)

此外,cmap x不会关闭Vim,只关闭缓冲区和窗口。如果您在最后一个缓冲区中,则会被转储到一个新的未命名缓冲区(与lmap x一样)。要关闭缓冲区或Vim,请使用:bd,这就是它的用途。

(另外,我不明白你的意思是“vim-airline中存在缓冲区”。航空公司是状态栏插件。缓冲区存在与否。两者无关,至少不是以一种对我来说很明显的方式。)