Vimで長押しとタップをマッピングする方法はCtrl?;
私のLinux端末では動作しません。Ctrl- vimrcを入れた後はうまくいきますlが、何もしません。<c-l> some_action
<c-;> some_action
答え1
キーボード入力が内部的に処理されるため、残念ながら今日のGVIMでも可能ではないことがよくあります。Ctrl+アルファベット以外の組み合わせなどの特定のキーの組み合わせはマッピングできず、Ctrl+文字はCtrl+ +文字と区別することはできません。Shift(端末が他のメッセージを送信しない限り用語キャップコードを使用しますが、ほとんどはそうではありません。 )挿入またはコマンドラインモードでキーの組み合わせを入力してみてください。 / insertionが発生しないと、キーの組み合わせは使用できません。これは<Tab>
/ <C-I>
、<CR>
// (唯一の例外は/です。)これは既知の問題であり、vim_devおよび#vim IRCチャネルでさまざまな議論のトピックです。<C-M>
<Esc>
<C-[>
<BS>
<C-H>
一部の人々(最初はPaul LeoNerd Evans)がこの問題を解決したいと思っていました(この機能をサポートする端末のVimコンソールの場合でも)、さまざまな提案をしました。http://groups.google.com/group/vim_dev/browse_thread/thread/626e83fa4588b32a/bfbcb22f37a8a1f8
しかし、現在のところ、今後出てくるパッチや志願者はいません。しかし、多くの人がVim 8の将来のメジャーバージョンでこの機能を使用できるようにしたいと述べています。
答え2
GUIまたはウィンドウマネージャの一種で作業している場合は、入力時にターミナルアプリケーションまたはGvimアプリケーションに別のキーストロークを送信するように設定できますCtrl;。 vimは理解できますが、入力するのが難しいキーストロークを送信するように指示する必要があります。
たとえば、(入力するのが難しい)Ctrl;にマッピングしてからにマッピングできます。Ctrl^Ctrl^.vimrc
私はMac OS XでKeyboard Maestroを使ってこれをしました。もちろん、これは設定がやや面倒で、特別に設定された環境でのみ機能しますが、一般的な状況に合わせて最適化すると長期的なパフォーマンスを得ることができます。