Vim-航空公司关闭buffer/quit vim

Vim-airline close buffer/quit vim

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

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

nnoremap : ;

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

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

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

有什么方法可以检查 vim-airline 中是否存在缓冲区并将其关闭? 看到 this post 但更多的是 NERDTree。

问题:nnoremap : ; 将更改 : 键以调用 ; 命令的原始值,即跳到 f 匹配的下一个字符, FtT。如果要使用;x,则需要重新映射反向:nnoremap ; :.

nnoremap :x ... 然后将 : 的原始值用于 :x,因此一切都应该正常工作。或者,不太安全的是,您可以执行 nmap ;x ... 来调用 : 的重新定义值(如果您指定 map! x,也可能调用 x 的重新定义值,cmap xlmap x 或它们的非递归变体)。

还有,:bd不会关闭Vim,只有缓冲区和一个window。如果您在最后一个缓冲区上,您将被转储到一个新的未命名缓冲区中(如 :enew)。要关闭缓冲区或 Vim,请使用 :q,这就是它的用途。

(另外,我不明白你说的"buffer exist in vim-airline"是什么意思。airline是一个状态栏插件,buffer要么存在要么不存在,两者没有任何关系,至少在一种对我来说很明显的方式。)