8

.vimrc ファイルに次の 2 行があります。

map <S-Enter> O<Esc>
map <CR> o<Esc>

2 行目は期待どおりに機能しますが、1 行目は機能しません。

Enter キーを押すと、vim はカーソル位置の下に新しい行を挿入し、カーソルをその行に移動する必要があります。Shift-Enter を押すと、vim はカーソル位置の上に新しい行を挿入し、カーソルをその行まで移動します。通常モードの大文字Oキーは、カーソルがある行の上に改行を挿入し、その行の先頭にカーソルを置き、ユーザーを挿入モードにするため、このマッピングは機能するはずです。大文字Oの後に続くと、<Esc>単に vim をコマンド モードに戻す必要があります。

O私は期待どおりに資本が動作することを確認しました。では、なぜ私のマッピングが機能しないのでしょうか? と を使用してみmap <Shift-CR>ましmap <Shift-Enter>たが、どちらもうまくいきません。

編集MacVimでは機能しますが、iTermでは機能しないことがわかりました。誰かが理由を説明し、回避策を提案できる場合は、感謝します。

4

1 に答える 1

11

コンソール Vim を使用していますか? 一部のキーの組み合わせは、GVIM でのみマッピングできます。すべて/ほとんどの Linux 端末では、またはEnterと組み合わせることはできません。マッピング自体は正しいですが、マッピングで別のLHSを使用する必要があります。ShiftCtrl

キーボード入力が内部で処理される方法により、一部のキーの組み合わせは GVIM でも使用できません。+英字Ctrl以外はマッピングできず、Ctrl+ 文字とCtrl+ Shift+ 文字は区別できません。これは既知の問題点であり、vim_dev および #vim IRC チャネルでさまざまな議論の対象となっています。

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

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

于 2012-10-25T16:27:07.053 に答える