Vim-Bindungen funktionieren nicht in st

Vim-Bindungen funktionieren nicht in st

In meiner vimrc habe ich Tastenkombinationen für die Navigation durch geteilte Fenster in vim eingerichtet. Sie funktionieren in urxvt einwandfrei, aber nicht in st.

Der Code, den ich habe, ist

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>

Jede Hilfe wäre willkommen

Antwort1

Die beiden Terminalemulatoren senden unterschiedliche Zeichenfolgen für die Steuerungs-/Pfeiltasten. Wenn SieTERMrichtig installiert ist, funktionieren die meisten Anwendungen.

Dies setzt voraus, dass sie die Terminaldatenbank verwenden.

Als Referenz würden die beiden Terminals verglichen mit

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

oder (je nach Vorliebe des Verpackers)

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

etwas wie das:

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'.

Die Strg-/Pfeiltasten sindkDN5(runter),kLFT5(links),kRIT5(richtig undkUP5(hoch).

Interessanterweisevimverwendet diese Informationen nicht vonTermininfoEs verwendet nur dieBegriffserklärungSchnittstelle (die nur 2-stellige Namen verwendet: diese sind nicht 2-stellig). Irgendwo in Ihrer Konfiguration gibt es einen Workaround dafür, der möglicherweise die Interpretation der unterschiedlichen Zeichenfolgen von st beeinträchtigt. Er könnte denTERMWert, aber nur in einer fest codierten, anwendungsspezifischen Weise.

Als Nachtrag zum Kommentar:st-256colorKopienxtermVerhalten von für die geänderten Funktionstasten (und natürlich auch für die unveränderten) undrxvt-unicodeVerwendetrxvtVerhalten von bei geänderten Funktionstasten usw. infocmp zeigt 138 Unterschiede zwischen den beiden Funktionstastensätzen (die geänderten mitgezählt).

verwandte Informationen