如果我在我的vimrc中有这一行
au VimLeave %bdelete
然后每当vim开始它就说
--- Auto-Commands ---
Press ENTER or type command to continue
我有那条线从gvim清空缓冲区,因为新的gvim实例从之前的运行中输出了大量:ls
。值得注意的是,gvim实际上并没有产生这个提示。
显然,我可以将此实例设置为仅在gvim启动期间而不是控制台vim,但我想了解这一点而不是避免它。我很困惑,VimLeave
似乎会导致事情在启动时发生。
TIA Altreus
答案 0 :(得分:6)
问题是这是一个不完整的:autocmd
定义,因此Vim会尝试列出为模式VimLeave
定义的所有%bdelete
自动命令。您需要指定任何文件模式才能使其正常工作:
au VimLeave * %bdelete
另外,请检查%
选项中是否有'viminfo'
;那个可以保存和恢复你抱怨的缓冲列表。文件标记的f
选项也可能导致缓冲区被恢复;你可以尝试:set viminfo+=f0
。
答案 1 :(得分:1)
除非您将%
添加到viminfo
选项,否则新的Vim实例不会继承前一个实例的缓冲区列表。
将该选项设置为合理的值将消除对破解修复的需求。在向配置中添加选项之前阅读文档可以防止出现类似问题。
请参阅:help 'viminfo'
。