aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bundle/git-blamer/autoload/git_blamer.vim8
1 files changed, 6 insertions, 2 deletions
diff --git a/bundle/git-blamer/autoload/git_blamer.vim b/bundle/git-blamer/autoload/git_blamer.vim
index c88f05a..40ffddb 100644
--- a/bundle/git-blamer/autoload/git_blamer.vim
+++ b/bundle/git-blamer/autoload/git_blamer.vim
@@ -3,6 +3,7 @@
" https://github.com/r00k/dotfiles/blob/7874508b825fd754e4ec3259da65f324ab96c8ea/vimrc#L74
function! git_blamer#Blame()
+ let l:top_line = line('w0') + &scrolloff
let l:line_number = line('.')
let l:buffer_name = shellescape(bufname('%'))
let l:buffer_number = bufnr('%')
@@ -11,8 +12,6 @@ function! git_blamer#Blame()
" Open new window
leftabove vnew
- setlocal noswapfile nowrap nolist nobuflisted buftype=nofile bufhidden=wipe
- setlocal scrollbind cursorbind
let b:git_blamer_restore = 'call setbufvar(' . l:buffer_number . ', "&scrollbind", 0) |
\ call setbufvar(' . l:buffer_number . ', "&cursorbind", 0)'
@@ -26,8 +25,13 @@ function! git_blamer#Blame()
setlocal nomodified nomodifiable
" Move cursor to position in starting file
+ execute l:top_line
+ normal! zt
call setpos('.', [0, l:line_number, 0, 0])
+ setlocal noswapfile nowrap nolist nobuflisted buftype=nofile bufhidden=wipe
+ setlocal scrollbind cursorbind
+
" Restore starting file's scrollbind on exit
autocmd BufWinLeave <buffer> execute b:git_blamer_restore
endfunction