4

ctrl キーを使用する vim のキーマップで奇妙な動作が発生しています。これには単純な原因と解決策があると思いますが、それがわかりません。

再構成されたテキストの編集中に、次のようなものを入力していることに気づきました

:math:`x` 

多くの場合 (この :math: ロールにより、ティック内にあるものは何でも、ラテックス出力などの数学としてタイプセットされます)。

m:math:`` と入力するようなキーをテキストにマップし、カーソルを目盛り内に配置したいと考えています。

私はこれをやった

map m i:math:``ha

そしてそれはうまくいくようです。

ただし、このマップを挿入モードで使用できるようにしたいと考えています。そのためには、ctrl+を使用mするのが最適だと考えました。終わったよ

imap <c-m> :math:``ha

ctrl+を実行すると :math:`` が正しく入力され、目盛り内にカーソルが配置されますがm、問題は、この時点以降、挿入モードで押すたびに+enterを入力した場合と同じコマンドが実行されることです。つまり、挿入モードで入力すると、にマップされているようですctrlm

:math:``ha

同じように。

それは間違いなくctrlキーの使用に関係しているようです。たとえば、F5次のようにキーをバインドすると

imap <F5> :math:``ha

すべて順調。

私は egF5キーを使用して、それ以上の手間を省くことができますが、今後の参考のために何が起こっているのか知りたいです。

ctrlキーマップでのキーの使用について、欠けている基本的なものはありますか?

ありがとうございました、

4

2 に答える 2

8

マッピングには別のコントロールの組み合わせを使用する必要があります<C-g>

キーボード入力が内部で処理される方法が原因で、残念ながら、GVIM であっても、これらの副作用がなければ、今日では一般的にこれを行うことはできません。+Ctrl非アルファベットはマッピングできず、Ctrl+ 文字とCtrl+ Shift+ 文字は区別できません。(端末が別のtermcapコードを送信しない限り、ほとんどの場合送信されません。) これは<Tab>/ <C-I><CR>/ <C-M>/ <Esc>/などにも当てはまります<C-[>(唯一の例外は<BS>/<C-H>です。) これは既知の問題点であり、さまざまな議論の対象です。 vim_dev と #vim IRC チャンネルで。

一部の人々 (主に Paul LeoNerd Evans) はそれを修正したいと考えており (これをサポートする端末のコンソール Vim についても)、さまざまな提案をしてきました、cp. http://groups.google.com/group/vim_dev/browse_thread/thread/626e83fa4588b32a/bfbcb22f37a8a1f8

しかし、今日現在、パッチやボランティアはまだ出されていませんが、将来の Vim 8 メジャー リリースでこれを提供したいという希望を多くの人が表明しています。

于 2013-04-02T16:00:53.843 に答える