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 SieTERM
richtig 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 denTERM
Wert, aber nur in einer fest codierten, anwendungsspezifischen Weise.
Als Nachtrag zum Kommentar:st-256color
KopienxtermVerhalten von für die geänderten Funktionstasten (und natürlich auch für die unveränderten) undrxvt-unicode
VerwendetrxvtVerhalten von bei geänderten Funktionstasten usw. infocmp zeigt 138 Unterschiede zwischen den beiden Funktionstastensätzen (die geänderten mitgezählt).