Answers:
当通过命令行将文件传递给Vim时,它们不仅在缓冲区中打开,而且填充参数列表。因此,您可以使用像:next
和:first
这样的命令来浏览它们(并:argdo
进行批处理,这可能是一个很巧妙的技巧)。我为您的问题推荐的命令是:wnext
(简称:wn
),它:write
是当前缓冲区,然后转到:next
。
您无需明确 :bdelete
的缓冲区,尤其是当您从命令行使用一组文件启动Vim并在完成后退出时。(我唯一想到的例外是卸载一个巨大的文件以节省系统内存,或为多个不同的编辑重新使用单个GVIM实例。)
但是,如果您确实要这样做,则只需定义一个自定义命令即可,例如
:command Wd write|bdelete
:w|bd
。
:next
在某些情况下更有意义。
虽然我同意,你不要有删除您目前没有使用打开的缓冲区,我喜欢将其删除,因为我有VIM航空公司启用的耳线,在的顶部,显示所有打开的缓冲区所有的时间窗口。我的内容如下.vimrc
:
nnoremap qq :w\|bd<cr>
qq
保存并关闭当前缓冲区,但也使vim的“记录宏”功能混乱(我可以接受)。
ZZ
想到了内置函数,但这最终会完全保存并退出Vim,而不仅仅是删除缓冲区。zz
对于那些发现宏比将视图居中于当前光标行更有价值的人,小写字母可能是一个有趣的替代映射。
Q
在意识到Vim中录制的价值之后,我最近将其更改为。
:next
一旦完成任务,就移至缓冲区并写入/关闭所有内容:wqa
。这个假设你有:set hidden
你的~/.vimrc
。