Vimは高機能なテキストエディタです。
Vimのコマンドを使いこなすことで、コーディングスピードが圧倒的に向上します。
そんな便利なVimを、自分向けにカスタムして更にコーディングスピードを上げることができます。
ここではVimのキーの割り当てをカスタマイズする方法を記述します。
Vimの"個人"設定ファイル「.vimrc/_vimrc」を編集する
◆システムvimrcとユーザvimrc
Vimの設定ファイルvimrc
には2種類あります。
一つはvimrc
というファイル名のシステムvimrc、もう一つは.vimrc
または_vimrc
というファイル名のユーザーvimrcです。
この設定ファイルはシステムvimrc→ユーザvimrcの順で読み込まれ、重複する設定はユーザvimrcで上書きされます。
また、システムvimrcは全ユーザ共通の設定ファイルであり、ユーザvimrcはユーザ固有の設定ファイルになります。
その為、Vimに新しくキーを割り当てる際にはユーザvimrcである.vimrc
または_vimrc
を編集していきます。
※共有したい設定であれば、システムvimrcを編集するのもアリだと思います。
◆「.vimrc/_vimrc」とは?
簡単に言うと_vimrc
はWindowsでのユーザvimrc名です。
とは言っても、Windowsでは_vimrc
→.vimrc
の順、Mac、Linuxでは.vimrc
→_vimrc
の順で、どちらでも読み込まれるそうです。
しかし、どちらか片方のユーザvimrcを読み込んだ後、続いて他のユーザvimrcを読み込んだりはしないので(例えば先に.vimrc
を読み込んだら_vimrc
は読み込まない。)、期待しない挙動や混乱を防ぐためにもユーザvimrc名はどちらかに統一させた方が良いと思います。
◆「.vimrc/_vimrc」の配置場所
では.vimrc
、_vimrc
はどこにあるのか?
結論から言うとありません。
無いので自分で作ります。
OS毎の配置場所は以下になります。
【Windows】
C:\Users[ユーザ]\
【Mac】
/Users/[ユーザ]/
【Unix】
/home/[ユーザ]/
それぞれ上記階層フォルダ直下に空のファイルを作成し、その中に設定を記述していきます。
※システムvimrcのvimrc
はvimをインストールしたフォルダ最上層に入っています。
キーの割り当て
◆キーの割り当て設定
.vimrc
または_vimrc
に以下のように記述することで、Vimコマンドにキーを割り当てることができます。コマンド名 <オプション> 実際の操作 割り当てたいVimコマンド
1.コマンド名
ここにはまず大きく2つ分けてnoremap
またはmap
が入ります。
意味としてはVimコマンドのnoremap
コマンド、map
コマンドと同じでnoremap
が再割当無し、map
が再割当有りです。
つまり、noremap
を使えばシステムのキー割り当てに従い、map
を使えばユーザーが定義したキー割り当てに従ってキーが割り当てられます。
いつか機会があれば別ページでこちらの2コマンドについても記述したいですが、とりあえず今は保留しますので、しっかり意味が知りたい方は調べてください。
とりあえず、普通にデフォルトのvimコマンドに対してキーを割り当てたいのであればnoremap
を記述してください。
また、noremap
、map
はノーマルモードとビジュアルモードにおけるキーの割り当てです。
最後に!
をつけてnoremap!
、map!
とすることでコマンドラインモードとインサートモードにおけるキーの割り当てになります。
他、最初にn
、v
、c
、i
と付けることで、それぞれノーマルモード、ビジュアルモード、コマンドラインモード、インサートモードにおけるキーの割り当てができます。
2.オプション
省略可能。
以下の種類があります。
<buffer>
バッファローカルにキーを割り当てます。(カレントバッファだけで使用するキーの割り当て)
<silent>
実行するコマンドがコマンドラインに出力されないようにします。
<special>
特殊キーを用いる場合に使用します。
<sscript>
既にマッピングされているものとの衝突を回避します。
<expr>
割り当て先の文字列をVimの式とみなして、評価した結果の文字列を割り当てます。
<unique>
すでにキーを割り当てている場合、エラーにします。(通常は上書きされる。)
3.実際の操作
割り当てたいキーを記述します。Space
等の特殊なキーは<>で囲んで記述します。Ctrl + c
は<C-c>となります。
4.割り当てたいVimコマンド
割り当てたいVimコマンドを記述します。
記述例
上記ルールに沿って.vimrc
または_vimrc
を編集したらキーの割り当ては完了です。
ノーマルモード時にスペース+エンターで空行を挿入(コマンドをコマンドラインに出力しない)nnoremap <silent> <Space><CR> o<ESC>
自分の好みにカスタマイズして、快適なVimライフを送ってください。
お疲れ様でした!