我做了搜索,并得到了cloeset答案表How can I automatically close preview window after I move cursor to another window in Vim?。不过,我发现它无法正确使用taglist插件。如何在我键入以下命令后自动关闭vim预览窗口:q命令退出窗口,选项卡或vim?
这里是从上面的链接采取代码:
autocmd WinLeave * pc
autocmd WinLeave * call ClosePreviewWindow()
function ClosePreviewWindow()
if &pvw
pclose
endif
endfunction
我使用所谓自动预览Vim的插件。通常它会调用ptag命令来打开预览窗口并跳回到缓冲窗口。问题是,当它从缓冲窗口跳转到预览窗口并返回时,它会两次触发WinLeave事件,然后打开后立即关闭预览窗口。所以它从来没有出现过。我试图用TabLeave/BufLeave替换WinLeave,发生其他问题。所以我来到这里寻求帮助。
更新:
也许我应该使用tabclose/qa命令?
那么...你有什么想法如何检查预览窗口是否打开?我google了一下,没有得到任何线索。 – Lion 2012-04-11 07:34:03
编辑我的回答 – 2012-04-11 07:59:56
感谢您的回答。我刚刚找到了解决方法。当缓冲区中只有一个预览窗口并设置Tlist_Exit_OnlyWindow = 1时,我修改了taglist.vim的源代码以关闭自身,然后预览窗口也自动关闭。 – Lion 2012-04-11 08:04:24