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
匹配的下一个字符, F
、t
或 T
。如果要使用;x
,则需要重新映射反向:nnoremap ; :
.
nnoremap :x ...
然后将 :
的原始值用于 :x
,因此一切都应该正常工作。或者,不太安全的是,您可以执行 nmap ;x ...
来调用 :
的重新定义值(如果您指定 map! x
,也可能调用 x
的重新定义值,cmap x
、lmap x
或它们的非递归变体)。
还有,:bd
不会关闭Vim,只有缓冲区和一个window。如果您在最后一个缓冲区上,您将被转储到一个新的未命名缓冲区中(如 :enew
)。要关闭缓冲区或 Vim,请使用 :q
,这就是它的用途。
(另外,我不明白你说的"buffer exist in vim-airline"是什么意思。airline是一个状态栏插件,buffer要么存在要么不存在,两者没有任何关系,至少在一种对我来说很明显的方式。)
对于 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
匹配的下一个字符, F
、t
或 T
。如果要使用;x
,则需要重新映射反向:nnoremap ; :
.
nnoremap :x ...
然后将 :
的原始值用于 :x
,因此一切都应该正常工作。或者,不太安全的是,您可以执行 nmap ;x ...
来调用 :
的重新定义值(如果您指定 map! x
,也可能调用 x
的重新定义值,cmap x
、lmap x
或它们的非递归变体)。
还有,:bd
不会关闭Vim,只有缓冲区和一个window。如果您在最后一个缓冲区上,您将被转储到一个新的未命名缓冲区中(如 :enew
)。要关闭缓冲区或 Vim,请使用 :q
,这就是它的用途。
(另外,我不明白你说的"buffer exist in vim-airline"是什么意思。airline是一个状态栏插件,buffer要么存在要么不存在,两者没有任何关系,至少在一种对我来说很明显的方式。)