En mi vimrc, tengo combinaciones de teclas configuradas para navegar a través de ventanas divididas en vim. Trabajan perfectamente en urxvt pero se niegan a trabajar en st.
El código que tengo es
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>
Cualquier ayuda sería apreciada
Respuesta1
Los dos emuladores de terminal envían diferentes secuencias de caracteres para las teclas de control/flecha. Si has configuradoTERM
correctamente, la mayoría de las aplicaciones funcionarán.
Eso supone que están usando la base de datos de la terminal.
Como referencia, los dos terminales se compararían usando
infocmp -x urxvt st |grep 'k[[:upper:]].*5:'
o (dependiendo de las preferencias del empaquetador)
infocmp -x rxvt-unicode st |grep 'k[[:upper:]].*5:'
algo como esto:
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'.
Las teclas de control/flecha estánkDN5
(abajo),kLFT5
(izquierda),kRIT5
(Derecha ykUP5
(arriba).
Suficientemente interesante,empujeno utiliza esta información deinformación terminológica. Utiliza sólo eltermcapinterfaz (que utiliza sólo nombres de 2 caracteres: estos no son 2 caracteres). En algún lugar de su configuración, existe una solución para esto, que podría estar interfiriendo con la interpretación de las diferentes secuencias de caracteres de st. Podría utilizar elTERM
valor, pero sólo de alguna manera codificada y específica de la aplicación.
Siguiendo el comentario,st-256color
copiasxtermel comportamiento de las teclas de función modificadas (y las no modificadas, por supuesto), yrxvt-unicode
usosrxvtel comportamiento de las teclas de función modificadas, etc. infocmp muestra 138 diferencias entre los dos conjuntos de teclas de función (contando las modificadas).