Il problema è duplice. Innanzitutto, tmux
per impostazione predefinita converte i tasti freccia di controllo da un tipo di sequenza di escape a un altro. Quindi tasti speciali come quelli controlleftvengono inviati vim
senza il modificatore, ad es left. Se usi cat -v
per vedere le diverse sequenze di escape, potresti vedere qualcosa del genere
^[OD
rispetto a questo (fuori da tmux):
^[[1;5D
La linea
set-window-option -g xterm-keys on
risolve quell'aspetto. L'altra parte è che tmux
per impostazione predefinita utilizza la descrizione del terminale per screen
. La descrizione del terminale non descrive i tasti freccia di controllo. Queste voci dal database dei terminali sarebbero le più appropriate per VTE (gnome-terminal):
Ce ne sono altri, come ad esempio
che sarebbe selezionato automaticamente durante l'esecuzione in screen
se corrispondente TERM
all'esterno erano vte
, vte-256color
ecc tmux
non la fanno automatica di selezione; devi modificare il suo file di configurazione.
A proposito, non esiste una voce "screen.xterm" perché interferirebbe con alcuni usi di screen
. Non c'è conflitto con TERM=xterm-new
.
Se hai un database terminale predefinito (minimo) come ncurses-base
in Debian, potresti non averne uno. Più comune sarebbe xterm-256color
, che è abbastanza vicino da usare con vim e tmux.
Ad esempio, se aggiungo questo al mio .tmux.conf
file, si comporta come previsto in vim:
set -g default-terminal "xterm-256color"
Ulteriori letture:
Control
+Left
;Control
+Right
non lo è. Proverò e aggiornerò più tardi.