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