web-dev-qa-db-ja.com

vimrcでキーマップ用にコード化されるキー名を取得するにはどうすればよいですか?

Emacsでは、を押すことができます Ctrl-h、 k、キーを説明します。定義されていない場合でも、キー名を取得できます。たとえば、

C-x <C-M-end> is undefined

そのため、キー名はC-x <C-M-end>であることがわかりました。

しかし、どうすればVimのキー名を取得できますか?

のキーマップを設定したい Ctrl-Shift-V そして Shift-Insert、しかし、どのコードを使用する必要がありますか?

その場でキー名を取得することは可能ですか?

10
Xiè Jìléi

describe-keyに最も近いものを見つけることができます(Ctrl+H、 K)は:mapコマンドです。すべてのマッピングが一覧表示されます。

:map <key name>を実行することもできますが、にリストされている特別な構文を使用して<key>を指定する必要があります。
キー表記

または、:mapを試すことができますCtrl+V<key>。これにより、特別な構文を使用する必要がなく、キーを押すだけで済みます。

だからバインドする Ctrl+Shift+V、 これを試して:

:map <C-S-v> whatever

または

:mapCtrl+VCtrl+Shift+Vwhatever

ただし、ターミナルプログラムがペーストなどの特別な目的でこれを使用していないことを確認してください。使用していない場合、Vimはキーが押されたことを認識しません。

map-alt-keys も参照してください。これは、 Alt キーは<M-x>または<A-x>と書く必要があります。

1
Mikel

キーまたはキーの組み合わせがVimで何を出力するかを調べるために、私は通常、「:enew "、挿入モードに入り、を押します control-v、次に識別したいキーまたはキーの組み合わせ。このcontrol-vトリックは:-コマンドラインでも機能するため、テスト用のマッピングを定義するのはかなり簡単です。例えば、 ":map "、 control-v とキーの組み合わせ、 ":echo 'it works' "。

5
Heptite

入力するだけです Ctrl+V オンザフライと押したいキー。期待する結果が見つからない場合(たとえば、<c-space><c-cr><M-i>、...)gvimではなくvimを使用していることを意味します。 vimが入力されたキーを理解する方法は、端末の構成に関係しています。 gvimは独自の定義を使用しているため、設定するものはありません。

0
Luc Hermitte