diff options
Diffstat (limited to 'bundle')
| -rw-r--r-- | bundle/git-blamer/autoload/git_blamer.vim | 28 | ||||
| -rw-r--r-- | bundle/git-blamer/plugin/git_blamer.vim | 1 | 
2 files changed, 29 insertions, 0 deletions
| diff --git a/bundle/git-blamer/autoload/git_blamer.vim b/bundle/git-blamer/autoload/git_blamer.vim new file mode 100644 index 0000000..cd6d83f --- /dev/null +++ b/bundle/git-blamer/autoload/git_blamer.vim @@ -0,0 +1,28 @@ +function! git_blamer#Blame() +	let l:line_number = line('.') +	let l:buffer_name = shellescape(bufname('%')) +	let l:window_number = winnr() +	 +	setlocal scrollbind cursorbind +	let t:git_blamer_restore = 'call setwinvar(' . l:window_number . ', "&scrollbind", 0) |  +		\ call setwinvar(' . l:window_number . ', "&cursorbind", 0)' +	 +	" Open new window +	vnew +	setlocal noswapfile nowrap nolist nobuflisted buftype=nofile bufhidden=wipe +	setlocal scrollbind cursorbind +	 +	" Read in `git blame` output +	execute 'read !git blame ' . l:buffer_name +	 +	" Delete empty first line +	1 delete +	 +	setlocal nomodified nomodifiable +	 +	" Move cursor to position in starting file +	call setpos('.', [0, l:line_number, 0, 0]) +	 +	" Restore starting file's scrollbind on exit +	autocmd BufWinLeave <buffer> execute t:git_blamer_restore +endfunction diff --git a/bundle/git-blamer/plugin/git_blamer.vim b/bundle/git-blamer/plugin/git_blamer.vim new file mode 100644 index 0000000..52197da --- /dev/null +++ b/bundle/git-blamer/plugin/git_blamer.vim @@ -0,0 +1 @@ +command! GitBlamer :call git_blamer#Blame() | 
