Vimで画面分割して指定行に移動する
最近ちょこちょことvimrc読書会に参加してます。
オンライン上で生贄テーマになっているvimrcを読み、気になるところを自由に
発言するというスタイルなのですが、人によって読む速度はバラバラです。
なので自分が読んでいる場所とは全然違う場所が話題になっていることがあります。
そういった時は、
- 画面分割する
- 該当行にジャンプする
という2ステップを踏んでいたのですが、こんな設定で1ステップ化してみました。
" Usage: " [count]sag " [count]sav nnoremap sag :SplitAndGo split<CR> nnoremap sav :SplitAndGo vsplit<CR> command! -count=1 -nargs=1 -complete=customlist,SAG_Complete SplitAndGo call SplitAndGo(<q-args>) function! SplitAndGo(cmd) let cnt = v:count ? v:count : 1 let cmd = cnt > line('.') ? 'botright '.a:cmd : 'topleft '.a:cmd execute cmd execute cnt . 'G' endfunction function! SAG_Complete(ArgLead, CmdLine, CursorPos) return ['split', 'vsplit'] endfunction
昨日の途中に思いついたものの時間内に完成しなかったので
次回試してみようと思います。