vimで変更箇所を強調するプラグインとしてはchanged.vimがあります。ないとやっていられないほど便利なのですが、Changedコマンドが実行されるたびにマーク欄が開閉して非常にうっとおしいです。後ちょっと重い。これをなんとか改善出来ないかと考えました。
結論から言うと、常に何かのマークを表示させておくしかないようです。折り畳み欄がfoldcolumnの設定で常に表示可能であるのに対し、マーク欄には該当する設定がなく、しかも実際にファイルがないとマーク出来ないようです。なのでファイルを開くと自動で行頭にダミーマークが表示されるように設定しました。
" changed
nnoremap ,c :Changed<CR>
" ダミーマーク(\)でsign欄が開閉するのを防ぐ
sign define SIGN_DEFAULT text=\
function! s:Show_constant_sign()"{{{
if filereadable(expand("%:p"))
execute "sign place 134893619283 line=1 name=SIGN_DEFAULT buffer=" . bufnr('%')
endif
endfunction"}}}
augroup changed_vim"{{{
autocmd!
autocmd BufRead * call s:Show_constant_sign()
augroup END"}}}
これで少なくともマーク欄が開閉することはなくなりました。
折角なのでChanged.vim自体ももう少し軽くならないでしょうか?今はvimprocというvimで非同期実行が可能な便利プラグインがあります。これで非同期に出来る部分を探してみました。ファイル削除部分が単純に置き換え可能だったのでフォークして書き換えます。
フォークしたもの(https://github.com/kyouryuukunn/vim-changed/)
これだけでもかなり軽くなりました。もうちょっと動作が軽快になるといいのですが、きりがないのでこのあたりでやめにします。