vim カーソル移動

 またまたvimの話です。
 エディターで編集するとき、最もよく使うのがカーソルの移動です。通常のエディターであればマウスでその箇所をクリックですが、vimではキーボードから手を離さず、できるだけ早く操作をするのが根本目的ですから、全てキーボード操作です。
 vimにはEasyMotion.vim(※1)のような、ピンポイントで目的の一文字へカーソルを素早く移動できるプラグインがありますが、私はどちらかというと目的行への移動をよく使用します。
 gg で一行目、G で最終行、5j で今のカーソル位置から5行下へ、10k で今のカーソル位置から10行上へ、15gg で15行目へ、など。ところが移動した先が画面の最上部や最下部になると、編集する際前後が見えた方が良いので、カーソル行を画面の中央に置く zz のキー操作を更にすることになります。
 とにかく無駄を省きたいのが人の習性ですから、これを一度にやるため私は vimrc に次の一行を入れています。
    nmap <CR> Gzz
 これで例えば 20 と打ち Enter すると、カーソルは20行目に移動し画面の中央に表示します。
 同じ考えをマーク機能ではどうでしょうか。vimには所定行で ma と打つと a にその行番号が記憶され、’a でその行にカーソル移動が行えるマーク機能があります。私自身マーク機能は、a マーク行から b マーク行までを c マーク行の後にコピーや移動といった使い方なのですが、単にカーソルの移動で先ほどの中央に表示する手段は私の技量では見つかりません。やむなく次の方法でいかがでしょう。
    nmap <F9> ]`zz
    nmap <F10> [`zz
 これで F9 キーで一つ下のマークへ移動し画面の中央に表示、F10 キーで一つ上のマークに移動し画面の中央に表示します。
 vimではより使いやすくより迅速にを目指していろいろ工夫をされていることでしょう。ちょっとでも参考になれば幸いです。

(※1) https://github.com/Lokaltog/vim-easymotion

se.gif

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です