El problema es doble. Primero, tmux
por defecto convierte las teclas de flecha de control de un tipo de secuencia de escape a otro. Así teclas especiales como controlleftson enviados a vim
sin el modificador, por ejemplo, left. Si usa cat -v
para ver las diferentes secuencias de escape, es posible que vea algo como esto
^[OD
versus esto (fuera de tmux):
^[[1;5D
La línea
set-window-option -g xterm-keys on
corrige ese aspecto. La otra parte es que tmux
por defecto usa la descripción del terminal para screen
. Esa descripción de terminal no describe las teclas de flecha de control. Estas entradas de la base de datos del terminal serían las más apropiadas para VTE (gnome-terminal):
Hay otros, como
que sería seleccionado automáticamente cuando se ejecuta en screen
si el correspondiente TERM
fuera eran vte
, vte-256color
, etc. tmux
no hace esto-selección automática; tienes que modificar su archivo de configuración.
Por cierto, no hay una entrada "screen.xterm" porque interferiría con algunos usos de screen
. No hay conflicto con TERM=xterm-new
.
Si tiene una base de datos de terminal predeterminada (mínima) como ncurses-base
en Debian, es posible que no la tenga. Más común sería xterm-256color
, que está lo suficientemente cerca como para usar con vim y tmux.
Por ejemplo, si agrego esto a mi .tmux.conf
archivo, se comporta como espera en vim:
set -g default-terminal "xterm-256color"
Otras lecturas:
Control
+Left
está funcionando;Control
+Right
no lo es. Probaré y actualizaré más tarde.