vim-users.jp

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挿入モード
lLang-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