El problema es doble. Primero, tmuxpor defecto convierte las teclas de flecha de control de un tipo de secuencia de escape a otro. Así teclas especiales como controlleftson enviados a vimsin el modificador, por ejemplo, left. Si usa cat -vpara 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 tmuxpor 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 screensi el correspondiente TERMfuera eran vte, vte-256color, etc. tmuxno 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-baseen 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.confarchivo, se comporta como espera en vim:
set -g default-terminal "xterm-256color"
Otras lecturas:
Control+Leftestá funcionando;Control+Rightno lo es. Probaré y actualizaré más tarde.