From ad8783961d487bf7cd5ba8a4e91e8ef7ca66e191 Mon Sep 17 00:00:00 2001 From: Techlive Zheng Date: Sat, 10 Nov 2012 03:52:04 +0800 Subject: [PATCH] Do not interfere window switching history Many plugins rely on 'wincmd p' to work properly, we need to preserve at least one-level backwards window switching history. --- autoload/tagbar.vim | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/autoload/tagbar.vim b/autoload/tagbar.vim index 7c04380..86d06dc 100644 --- a/autoload/tagbar.vim +++ b/autoload/tagbar.vim @@ -2411,7 +2411,14 @@ function! s:RenderContent(...) abort let in_tagbar = 1 else let in_tagbar = 0 + let currwinnr = winnr() + + " Get the previous window number, so that we can reproduce + " the window entering history later. Do not run autocmd on + " this command, make sure nothing is interfering. + call s:winexec('noautocmd wincmd p') let prevwinnr = winnr() + call s:winexec(tagbarwinnr . 'wincmd w') endif @@ -2476,6 +2483,7 @@ function! s:RenderContent(...) abort if !in_tagbar call s:winexec(prevwinnr . 'wincmd w') + call s:winexec(currwinnr . 'wincmd w') endif endfunction