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

両方の端末エミュレータは、Ctrl/矢印キーに対して異なる文字シーケンスを送信します。設定した場合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'.

Ctrl/矢印キーはkDN5(下)、kLFT5(左),kRIT5(右)そしてkUP5(上).

楽しく、ウィムこの情報を使用しないでください用語情報。それだけを使用用語キャップインターフェイス(2文字のみを使用してください。2文字ではありません)設定のどこかにstの他の文字シーケンスを解釈するのを妨げる可能性がある回避策があります。それは使用することができますTERMただし、一部のハードコーディングされたアプリケーション固有の方法でのみ可能です。

コメントでフォローアップを行い、st-256colorコピーxterm変更されたファンクションキー(もちろん、変更されていないファンクションキー)の動作rxvt-unicode使用価値を得るファンクションキーなどの動作を修正します。 infocmpは、2つのファンクションキーセットの間に138の違いがあることを示しています(変更されたファンクションキーの計算)。

おすすめ記事