Hack #148: Key mappingの設定を確認する
Posted at 2010/05/20ツイート
Vim を操作していると、たまにキー操作に対して意図しない挙動が発生することがあります。これは多くの場合、把握していない Key mapping が設定されているからです。 例えば、プラグインによって知らないうちに設定されていたり、自分で設定していて忘れてしまっていたり、自分で間違えて設定していた場合などです。 こういう時は Key mapping の設定を確認すると解決することが多いです。
:map コマンド
:map 系のコマンドは Key mapping を定義するコマンドですが、設定の確認にも使えます。引数なしで実行すると、コマンドに対応するモードで定義されている Key mapping の一覧が表示されます。例えば、
:imap
を実行すると Insert mode で定義されている Key mapping の一覧が表示されます。
一覧表示の見方
一覧表示は 1 行に 1 つの設定が書かれています。 最初の 3 文字は設定されているモードです。以下の文字のうち最大で 3 文字が表示されます。
| 文字 | モード |
|---|---|
| (空白) | ノーマル、ビジュアル、セレクト、演算待ち状態モード |
| n | ノーマルモード |
| v | ビジュアルモード、セレクトモード |
| s | セレクトモード |
| x | ビジュアルモード |
| o | 演算待ち状態モード |
| ! | 挿入モード、コマンドラインモード |
| i | 挿入モード |
| l | Lang-Argモード |
| c | コマンドラインモード |
続いて、展開前の文字列と展開後の文字列が書かれています。展開後の文字列の前には記号が表示されている場合があり、それらは以下の意味になります。
| 文字 | 意味 |
|---|---|
| * | 再マップされません。つまり、noremap 系で定義された Key mapping です。 |
| @ | バッファローカルなマップです。<buffer> 付きで定義された Key mapping です。 |
| & | スクリプトローカルなマップだけが再マップされます。<script> 付きで定義された Key mapping です。 |
特定のキーの設定を調べる
:map 系のコマンドに 1 つだけ引数を与えると、そのキーシーケンスで始まる Key mapping のみを表示します。
定義された場所を調べる
:verbose 付きで :map コマンドを実行すると、その設定を定義したファイルが確認できます。例えば以下のように表示されます。
:verbose map gj
gj * j
Last set from ~/.vimrc
これにより、意図しない設定を行った元凶を調べることができます。
thincaもどる
blog comments powered by Disqus