VimでGitで衝突したところにジャンプ

Gitでマージやリベースで衝突が起きた場合、その解消のために該当ファイルを開き、移動する……前に自動的に<<<<<<<にジャンプするだけみたいなのがちょっと欲しくなった。VimだとBufReadPostsearch()を呼べば良さそうだ。

augroup LtLtLtLtLtLtLt
  autocmd!

  " Jump to first conflict position if find
  autocmd BufReadPost * call search('^<<<<<<<', 'sw', 0, 1000)
augroup END

検索を一周させるようにフラグを立てておくついでに戻れるようにもフラグを立てたつもりだけど、発火するタイミング的に常に先頭で意味が無いような気がしないでもない。あと大きなファイルで死にそうなので1000ミリ秒に制限しておいたけど、もっと短くても良さそう。カーソル位置の復帰など、同じようにファイルを開いた時にカーソル位置を動かすプラグインと相性は悪いけど、なんとかなる。

<<<<<<<は大体は文法エラーなので、Syntasticを使っている人は、

の設定を有効にするとだいたい実現できそうな気がする。最初のエラーじゃなかった時の保険として、位置リストを自動的に開くようにしておくといける。