diff options
Diffstat (limited to 'bundle')
-rw-r--r-- | bundle/git-blamer/autoload/git_blamer.vim | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/bundle/git-blamer/autoload/git_blamer.vim b/bundle/git-blamer/autoload/git_blamer.vim index dc41bca..df9832e 100644 --- a/bundle/git-blamer/autoload/git_blamer.vim +++ b/bundle/git-blamer/autoload/git_blamer.vim @@ -7,6 +7,7 @@ function! git_blamer#Blame() let l:line_number = line('.') let l:buffer_name = shellescape(bufname('%')) let l:buffer_number = bufnr('%') + let t:git_blamer_window_number = winnr() let restore = '' if &l:wrap @@ -42,5 +43,23 @@ function! git_blamer#Blame() nnoremap <buffer> q :q<CR> " Restore starting file's scrollbind on exit - autocmd BufWinLeave <buffer> execute b:git_blamer_restore + autocmd BufWinLeave <buffer> + \ execute b:git_blamer_restore + \ | call s:FocusOriginalWindow() +endfunction + +function! s:FocusOriginalWindow() + augroup git_blamer + autocmd! + + autocmd WinEnter * + \ execute t:git_blamer_window_number . 'wincmd w' + \ | call s:RemoveWindowFocusAutocmd() + augroup END +endfunction + +function! s:RemoveWindowFocusAutocmd() + augroup git_blamer + autocmd! + augroup END endfunction |