ZyX*_*ZyX 16
尝试执行以下操作:
:set eventignore=all | bd | set eventignore=
Run Code Online (Sandbox Code Playgroud)
如果这不会退出vim那么你有一些插件定义了一个自动命令,当列表中不再有缓冲区时退出vim,所以在那之后尝试做
verbose autocmd BufWinLeave,BufLeave,BufDelete,BufUnload,BufWipeout
Run Code Online (Sandbox Code Playgroud)
这将显示附加到给定事件的所有自动命令(这些是删除缓冲区时执行的事件)以及它们的定义位置.请注意,我没有任何自动命令附加到由标准vim发行版中的插件定义的这些事件.
更新:我的输出中没有看到任何不良内容.你也可以试试
verbose autocmd BufNew,BufAdd,BufCreate,BufEnter,BufWinEnter
Run Code Online (Sandbox Code Playgroud)
(因为当你离开最后一个缓冲区时,会创建一个空的缓冲区).如果这没有显示任何可疑的内容,请开始忽略事件类型:如果您在Linux上,请尝试以下脚本:
for event in BufWinLeave BufLeave BufDelete BufUnload BufWipeout BufNew BufAdd BufCreate BufEnter BufWinEnter
do
event=$event vim file -c "set eventignore=$event | bd"
done
Run Code Online (Sandbox Code Playgroud)
此脚本应该迭代,直到找到导致问题的事件名称.在此之后,您可以execute "verbose autocmd" $event在vim 中使用以缩小应检查的插件数量.获得autocmd组列表后(在输出中的事件名称之前显示的是组合名称:railsPluginDetect是其中一个组),删除它们中的事件(augroup {GroupName} | execute 'autocmd!' | augroup END)并找出要声明的插件.
或者,您可以使用调试器:
debug bd
Run Code Online (Sandbox Code Playgroud)
然后s<CR>n<CR><CR><CR>...直到vim退出; 不要忘记>在退出之前记住vim上面显示的内容.
| 归档时间: |
|
| 查看次数: |
1528 次 |
| 最近记录: |