Gitでマージやリベースで衝突が起きた場合、その解消のために該当ファイルを開き、移動する……前に自動的に<<<<<<<
にジャンプするだけみたいなのがちょっと欲しくなった。VimだとBufReadPost
でsearch()
を呼べば良さそうだ。
augroup LtLtLtLtLtLtLt
autocmd!
" Jump to first conflict position if find
autocmd BufReadPost * call search('^<<<<<<<', 'sw', 0, 1000)
augroup END
検索を一周させるようにフラグを立てておくついでに戻れるようにもフラグを立てたつもりだけど、発火するタイミング的に常に先頭で意味が無いような気がしないでもない。あと大きなファイルで死にそうなので1000ミリ秒に制限しておいたけど、もっと短くても良さそう。カーソル位置の復帰など、同じようにファイルを開いた時にカーソル位置を動かすプラグインと相性は悪いけど、なんとかなる。
<<<<<<<
は大体は文法エラーなので、Syntasticを使っている人は、
- 開いた時にチェック(
let g:syntastic_check_on_open = 1
) - 最初のエラーにジャンプ(
let g:syntastic_auto_jump = 1
) - 位置リストを自動的に開く(
let g:syntastic_auto_loc_list = 1
)
の設定を有効にするとだいたい実現できそうな気がする。最初のエラーじゃなかった時の保険として、位置リストを自動的に開くようにしておくといける。