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

兩個終端模擬器為控制/箭頭鍵發送不同的字元序列。如果你已經設定了TERM正確的話,大多數應用程式都可以工作。

假設他們正在使用終端資料庫。

作為參考,兩個終端將使用進行比較

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用途接收值修改功能鍵的行為等。

相關內容