svn-diff.vimをより見やすく
2011年11月22日以下のエントリを参考に、svn-diff.vim(svn.vim)を変更してみた。
左上に、コミット用コメント欄
左下に、svn log
右に、svn diff
が、表示されるようになる。
pathogen.vimを利用しているので、以下を編集
[shell]
$ vim ~/.vim/bundle/vim-svndiff/ftplugin/svn.vim
…
function! Svn_diff_windows()
let i = 0
let files = []
while i <= line(‘$’)
let line = getline(i)
if line =~ ‘^M’
let file = substitute(line, ‘\v^MM?\s*(.*)\s*$’, ‘\1’, ”)
call add(files, file)
endif
let i = i + 1
endwhile
if len(files) == 0
return~
endif
let list_of_files = join(files, ‘ ‘)
set nosplitright
vnew
silent! setlocal ft=diff previewwindow bufhidden=delete nobackup noswf nobuflisted nowrap buftype=nofile
execute ‘normal :r!LANG=ja_JP.UTF8 svn diff ‘ . list_of_files . “\n”
setlocal nomodifiable
goto 1
redraw!
wincmd R
wincmd p
goto 1
redraw!
new
silent! setlocal ft=diff previewwindow bufhidden=delete nobackup noswf nobuflisted nowrap buftype=nofile
for file in files
execute ‘normal :r!LANG=ja_JP.UTF8 svn info ‘ . file . ” | grep ‘URL:’\n”
execute ‘normal :r!LANG=ja_JP.UTF8 svn log -r PREV:HEAD –limit=1 ‘ . file . “\n”
endfor
~~~~
setlocal nomodifiable
goto 1
redraw!
wincmd R
wincmd p
goto 1
redraw!
endfunction
set nowarn
call Svn_diff_windows()
set nowb
[/shell]