对于vim和vim-airline,我有一种情况,我希望能够关闭缓冲区(如果存在),如果不关闭vim。
因为速度原因,我首先将:x
重新映射到;x
。
nnoremap : ;
然后我映射;x
以关闭使用vim-airline
nnoremap :x :bp <BAR> bd #<CR>
现在问题是当我最终关闭所有缓冲区时,我无法使用;x
来退出vim。
有没有办法检查vim-airline中是否存在缓冲区并关闭它? 看到this post,但更多的是NERDTree。
答案 0 :(得分:1)
问题:nnoremap : ;
将更改:
键以调用;
命令的原始值,即跳至f
匹配的下一个字符,{{ 1}},F
或t
。如果您想使用T
,则需要重新映射反向:;x
。
nnoremap ; :
会将nnoremap :x ...
的原始值用于:
,所以一切都应该正常。或者,安全性较低,您可以:x
调用重新定义的nmap ;x ...
值(如果您指定了:
,也可以重新定义x
的值,{ {1}},map! x
或其非递归变体。)
此外,cmap x
不会关闭Vim,只关闭缓冲区和窗口。如果您在最后一个缓冲区中,则会被转储到一个新的未命名缓冲区(与lmap x
一样)。要关闭缓冲区或Vim,请使用:bd
,这就是它的用途。
(另外,我不明白你的意思是“vim-airline中存在缓冲区”。航空公司是状态栏插件。缓冲区存在与否。两者无关,至少不是以一种对我来说很明显的方式。)