Shift-Enterをマップする方法



How Map Shift Enter



解決:

キーボード入力が内部で処理される方法のため、残念ながら、これは今日のVimのターミナルバージョンでは一般的に不可能です(すべてのプラットフォームのGVIM、およびWindowsコンソールVimで動作するはずです)。これは既知の問題点であり、vim_devと#vimIRCチャネルに関するさまざまな議論の対象です。

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



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


マッピングに関する注意

マップする場合通常モードでは、コマンドラインウィンドウでの履歴アイテムの選択や、クイックフィックス/ロケーションリストウィンドウのカーソルの下のエラーへのジャンプが妨げられます。 (以下を追加しない限り:)



:autocmd CmdwinEnter * nnoremap:autocmd BufReadPost quickfix nnoremap

に注意してください:nmap:

あなたは使用する必要があります:noremap;これにより、マッピングは再マッピングや再帰の影響を受けなくなります。


Vimが期待していると思われるキーコードを送信することで、Shift + Enterの端末キーコードを修正することができました。お使いの端末によっては、 (ボーナスとしてCtrl + Enterを追加します!)

iTerm2



単一のプロファイルを開く場合 環境設定プロファイルキー[+](追加)
開いているすべてのプロファイル 環境設定キー[+](追加)

  • キーボードショートカット: (Shift + Enterを押す)
  • アクション: エスケープシーケンスを送信する
  • Esc + [13; 2u

    Ctrl + Enterを次の順序で繰り返します:[13; 5u

urxvt 、あなたに追加.Xresourcesファイル:

URxvt.keysym.S-戻り値: 033 [13; 2u URxvt.keysym.C-戻り値: 033 [13; 5u

Alacritty 、 下key_bindings、以下を追加します〜/ .config / alacritty / alacritty.yml:

-{key:Return、mods:Shift、chars: ' x1b [13; 2u'}-{key:Return、mods:Control、chars: ' x1b [13; 5u'}

キティ 、 の〜/ .config / kitty / kitty.conf:

map shift + enter send_text all  x1b [13; 2u map ctrl + enter send_text all  x1b [13; 5u 

また、マップしたかったのですが、Ctrl + Vを使用して2番目のマッピングを追加し、次にマップされたキーストロークを追加するまで、CLIモードで機能させることができませんでした。ただし、GVImが期待どおりに機能するには、マッピングが引き続き必要です。これにより、.vimrcスニペットが次のようにレンダリングされます。

nnoremap o nnoremap i'GVImに必要nnoremap ^ [0M i'CLI VImに必要(注:^ [0MはCtrl + V Shift + Enterで作成されました。直接入力しないでください)

私はこれをUbuntu12.04でテストしました。ハッピービミング!