等号を使用したCtrlのマッピング


10

Ctrlキーとプラス記号を一緒にマッピングしようとしています。これは私が私のvimrcで試していることです:

nnoremap <C-=>    : echo "Hello" <CR> 

ただし、マッピングがトリガーされていないようです。私が間違っている可能性があることについて何か提案はありますか?私はmacvimを使用しています。



1
この種の質問はより頻繁になっているようです:VIM結合キーをマッピングする方法:ctrl + shift + w +、
mMontu

@mMontuええ、それはかなり一般的な質問です。vimの文字、用語コードの内部表現、およびvimがマップできる/マップできないものについての正規の投稿を書くのは良い考えでしょうか。
ジェームズ

回答:


17

残念ながら、信頼できるマッピング方法はありませんCtrl-=

ctrl+keyコードがターミナルと相互作用して内部的に表現される方法のため、Vimが検出できることが保証されている唯一のCtrlマッピングは、ASCII標準で定義されているものです。このようなctrl+key組み合わせの完全なリストと、それぞれが表すバイトを以下に示します。

Ctrl-@                 0x00            NUL
Ctrl-A to Ctrl-Z       0x01 to 0x1A
Ctrl-a to Ctrl-z       0x01 to 0x1A
Ctrl-[                 0x1B            ESC
Ctrl-\                 0x1C
Ctrl-]                 0x1D
Ctrl-^                 0x1E
Ctrl-_                 0x1F
Ctrl-?                 0x7F            DEL

ただし、これらのほとんどはすでにVimに機能があり、一部は他のキーストロークと本質的に同一であるか、区別がつかないことに注意してください。たとえばCTRL-Mはと同じキーコードを持っているEnterので、どちらかをマッピングすると、もう一方もマッピングせざるを得なくなります。

出典:Vim-FAQ

このスタックオーバーフロースレッドのように、マッピングに特定のバイトシーケンスを送信するように端末を構成することで、上記の制限を回避できる可能性がありますが、これは間違いなく苦痛です。個人的には、別のマッピングを選択するだけです。

これは最終的には修正される可能性がありますが、Vimが実行されているターミナルに依存しているため、そうなる可能性は低いです。しかし、これがNeovimで機能する可能性は十分にあります。それが今うまくいくかどうかはわかりません。


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