Le problème est double. Tout d'abord, tmux
par défaut, convertit les touches fléchées de contrôle d'un type de séquence d'échappement en un autre. Donc les touches spéciales telles que controlleftsont envoyées vim
sans modification, par exemple left. Si vous utilisez cat -v
pour voir les différentes séquences d'échappement, vous pourriez voir quelque chose comme ça
^[OD
par rapport à cela (en dehors de tmux):
^[[1;5D
La ligne
set-window-option -g xterm-keys on
corrige cet aspect. L'autre partie est que tmux
par défaut utilise la description du terminal pour screen
. Cette description de terminal ne décrit pas les touches de direction. Ces entrées de la base de données du terminal seraient les plus appropriées pour VTE (gnome-terminal):
Il y en a d'autres, comme
qui serait automatiquement sélectionné lors de l' exécution dans le screen
cas correspondant à l' TERM
extérieur étaient vte
, vte-256color
etc. tmux
ne le fait pas-sélection automatique; vous devez modifier son fichier de configuration.
Soit dit en passant, il n'y a pas d'entrée "screen.xterm" car cela interférerait avec certaines utilisations de screen
. Il n'y a aucun conflit avec TERM=xterm-new
.
Si vous avez une base de données de terminaux par défaut (minimale) comme ncurses-base
dans Debian, vous ne les avez peut-être pas. Le plus courant serait xterm-256color
, qui est assez proche pour être utilisé avec vim et tmux.
Par exemple, si j'ajoute ceci à mon .tmux.conf
fichier, il se comporte comme vous vous attendez dans vim:
set -g default-terminal "xterm-256color"
Lectures complémentaires:
Control
+Left
fonctionne;Control
+Right
ne l'est pas. Je testerai et mettrai à jour plus tard.