Vim バインドが st で動作しない

Vim バインドが st で動作しない

私の vimrc には、vim の分割ウィンドウをナビゲートするためのキーバインドが設定されています。urxvt では問題なく動作しますが、st では動作しません。

私が持っているコードは

nnoremap <silent> <C-Up> :wincmd k<CR>
nnoremap <silent> <C-Down> :wincmd j<CR>
nnoremap <silent> <C-Left> :wincmd h<CR>
nnoremap <silent> <C-Right> :wincmd l<CR>

ご協力いただければ幸いです

答え1

2つの端末エミュレータは、コントロール/矢印キーに対して異なる文字シーケンスを送信します。TERM適切に実行すれば、ほとんどのアプリケーションが動作します。

これは、ターミナル データベースを使用していることを前提としています。

参考までに、2つの端末を比較すると、

infocmp -x urxvt st |grep 'k[[:upper:]].*5:'

または(パッケージ作成者の設定によります)

infocmp -x rxvt-unicode st |grep 'k[[:upper:]].*5:'

このようなもの:

kDC5: '\E[3\^', NULL.
kDN5: '\EOb', '\E[1;5B'.
kEND5: '\E[8\^', NULL.
kHOM5: '\E[7\^', NULL.
kIC5: '\E[2\^', NULL.
kLFT5: '\EOd', '\E[1;5D'.
kNXT5: '\E[6\^', '\E[6;5~'.
kPRV5: '\E[5\^', '\E[5;5~'.
kRIT5: '\EOc', '\E[1;5C'.
kUP5: '\EOa', '\E[1;5A'.

コントロール/矢印キーはkDN5(下)、kLFT5(左)、kRIT5(右)とkUP5(上)。

大変興味深いことに、ヴィムこの情報は使用しません用語情報. 使用するものはタームキャップインターフェース(2文字の名前のみを使用する:これらは2文字ではありません)。設定のどこかに、これに対する回避策があり、stの異なる文字シーケンスの解釈を妨げている可能性があります。TERM値は、ハードコードされたアプリケーション固有の方法でのみ提供されます。

コメントに続き、st-256colorコピーxterm変更されたファンクションキー(もちろん変更されていないファンクションキーも)の動作、およびrxvt-unicode用途rxvt変更されたファンクションキーなどに対する の動作。infocmp は、2 つのファンクションキー セット (変更されたキーも含む) 間の 138 個の相違点を示します。

関連情報