Vim

Vimのキー割り当て

More than 1 year has passed since last update.

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」とは?

簡単に言うと_vimrcWindowsでのユーザ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を記述してください。

また、noremapmapノーマルモードビジュアルモードにおけるキーの割り当てです。
最後に!をつけてnoremap!map!とすることでコマンドラインモードインサートモードにおけるキーの割り当てになります。
他、最初にnvciと付けることで、それぞれノーマルモードビジュアルモードコマンドラインモードインサートモードにおけるキーの割り当てができます。

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ライフを送ってください。
お疲れ様でした!