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


10

Emacsでは、私が押すことができCtrl-hkキーを記述するために、。未定義でもキー名を取得できます。たとえば、

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

したがって、私はキー名がであることを知るようになりましたC-x <C-M-end>

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

私はセットアップにのためのキーマップたいCtrl-Shift-VとしShift-Insertますが、私は使用にどのようなコードを持たなければなりませんか?

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

回答:


2

describe-keyCtrl+ HK)に最も近いのは:mapコマンドです。すべてのマッピングがリストされます。

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

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

Ctrl+ + Shift+ をバインドするにはV、これを試してください:

:map <C-S-v> whatever

または

:mapCtrl+ V Ctrl+ Shift+V whatever

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

参照してくださいマップ-ALT-キー、あなたかどうかを説明できますAltキーのように書かれるべき<M-x>かを<A-x>


これはCtrl-X、kではなく、Ctrl-h、kです。これは、バッファのキルを意味します。
謝Jìléi

すみません、それを修正しました。
ミケル、2011年

にマッピングされるかどうMAはわかりませんAlt。しかし<M-h>, <M-l>、うまくいきません。キー名が無効かどうか、またはキーイベントがVimに送信されていないかどうかはわかりません。ログなし、手がかりなし。
謝Jìléi

はい、Altほとんどの端末が送信しているため、困難であるESCその後、xときAlt+x押され、そしてどのようにVimはあなたが押していなかった知っているんESCそれからx。基本的AltにGvimでのみ動作します。
ミケル

5

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


0

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.