はじめに
私がVimでよく使うキーマップのカスタマイズを紹介します。
よく使うキーマップのカスタマイズ
折り返しがあっても上下の移動を1行にする
j k によるキャレットの移動はデフォルトだと行番号単位であり、折り返されていると一気に移動してしまいます。
折り返されていても常に1行ずつ移動するようにします。
noremap j gj
noremap k gk
「H」「L」で行頭・行末に移動する
0 はまだしも、 $ はとにかく押しにくいです。
よく使うコマンドは押しやすいようにしたいので、 Shift + h Shift + l で移動するようにします。
noremap <S-h> 0
noremap <S-l> $
これで押しやすくなりました。
「+」「-」でインクリメント・デクリメントする
数字やアルファベットのインクリメント・デクリメントは、デフォルトだと直感的なキーマップになっていません。
+ - として直感的に操作できるようにします。
nnoremap + <C-a>
nnoremap - <C-x>
「Y」でキャレット位置から行末までヤンクする
D や C と異なり、Y は行全体をヤンクします。
統一性を持たせたいので、 Y でキャレット位置から行末までをヤンクするようにします。
nnoremap Y y$
ただ、私は yL で同様の操作を行っており、こちらの設定は使っていないです。。
→ Y の方が手数が少ないため、最近は積極的に使っています。
貼り付け先のインデントに合わせてペーストする
コーディング中にペーストするとき、貼り付け先とインデントの深さが異なると、ペースト後にインデントを調整する必要があります。
手間なので、ペースト時に自動でインデントを調整するようにします。
nnoremap p ]p
nnoremap P ]P
インデントの調整後にビジュアルモードを解除しない
> と < でインデントを調整できますが、調整後にビジュアルモードが解除されます。
連続でインデントを調整できるようにします。
vnoremap < <gv
vnoremap > >gv
矢印キーを無効にする
こちらは禁断のカスタマイズです。
Vimのキーマップに慣れるため、矢印キーを押してもキャレットが移動しないようにします。
noremap <Left> <Nop>
noremap <Down> <Nop>
noremap <Up> <Nop>
noremap <Right> <Nop>
これですぐにVimのキーマップマスターになれます。
先輩や同僚に自分のマシンを操作してもらう場合、軽くキレられるのでご注意ください。
おわりに
いかがでしたでしょうか?
みなさんが他によく使うキーマップがありましたら、教えていただけると嬉しいです。
私のキーマップの設定ファイルはGitHubにあるので、よかったら見てください。
https://github.com/uhooi/dotfiles/blob/master/.vim/config/mappings.vim