Comment faire pour que les touches ctrl + gauche / droite se déplacent par mot entier dans tmux?


100

Dans zsh et bash, ctrl + flèches me permettent de déplacer la position à laquelle je tape en utilisant un mot entier, mais cela ne fonctionne pas dans tmux, ce qui pose un problème, car je le lance automatiquement à chaque ouverture du shell. .

Comment puis-je réparer cela?

Réponses:


130
  1. Editez votre ~/.tmux.confet ajoutez des lignes:

    set-window-option -g xterm-keys on
    
  2. Si vous ne voulez pas le rendre permanent pour l'instant, faites:

    C-b :set-window-option xterm-keys on
    
  3. Rechargez votre configuration dans tmux en faisant:

    C-b :source-file ~/.tmux.conf
    

Plus d'informations ici :


2
Étrange: Cela ne fonctionne pour moi que si je recharge le fichier ~ / .tmux.conf à partir de tmux ou si je définis l'action dans l'option: -prompt de tmux, pas initialement lorsque j'ouvre tmux. Des idées ce qui pourrait être le problème là-bas?
AME

@AME ferme toutes les sessions tmux puis réessayez.
Nathan

Si reload config ne résout pas le problème (c'est le cas pour moi), essayez une nouvelle session. Peut-être devez-vous tuer la session en cours et en créer une nouvelle. Une autre option pour le rendre effectif dans un volet (pas une session) est Cb: respawn-pane -k
fstang

Cela a fonctionné pour moi, principalement. Je me demande pourquoi ce n'est pas sur par défaut?
inetknght

Tuer la session ou quoi que ce soit set-window-option -g xterm-keys onne fait toujours rien dans mon cas.
noraj

8
set-window-option -g xterm-keys on

M'a apporté une partie du chemin et m'a donné Ctrl- Left/Rightsur la console, mais il répondait toujours différemment dans vim.

La reliure des clés n'a pas semblé aider.

Il s’est avéré qu’à un moment donné j’avais configuré mon terminal par défaut sur screen ( set-option -g default-terminal "screen"in .tmux.conf)

Changer ceci en ce qui suit m'a donné Ctrl- Left/Rightdans tout le reste:

set-option -g default-terminal "xterm-256color"

J'espère que ça aide quelqu'un.


1
Sauf que ça casse les couleurs de vim, tig, et vraisemblablement de tout un tas d'autres trucs ...
koniiiik

1
voir aussi unix.stackexchange.com/a/1098/250 pour un conseil contre le réglage de TERM comme cela dans tmux
phunehehe

3

Pour msys2 / Cygwin / menthe:

Ajouter ci-dessous à ~/.inputrc.

"\e[1;5C": forward-word   # ctrl + right
"\e[1;5D": backward-word  # ctrl + left 

Reload ferait fonctionner tmux correctement.


2

Je ne suis pas sûr, mais c'est peut-être dû tmuxau fait que, par défaut, il est obligatoire C-<up/down/left/right>de déplacer le focus sur le volet situé au-dessus / au-dessous / à gauche de / à droite du volet actuellement ciblé. Si vous n'utilisez pas souvent les volets, vous n'avez peut-être pas remarqué cette fonctionnalité. Si tel est le problème, vous pouvez dissocier ces clés en disant:

unbind C-Left
unbind C-Right

Cela pourrait suffire à lui seul , ou vous devrez peut-être les lier à nouveau manuellement à ce que vous voulez, via:

bind -n C-Left <the action you want>
bind -n C-Right <other action you want>

1
Il devrait suffire à lui seul. Si ce n'est pas attiré par tmux, il devrait passer sur le shell.
Rob

0

Pour moi, les clés n'étaient pas reliées correctement, car les préférences système de High Sierra étaient configurées pour être utilisées par Mission Control. En décochant ces options, les liaisons correctes ont pu fonctionner dans iTerm2 et Tmux

Préférences de système

Décocher tous les éléments référençant la clé de contrôle, permet aux liaisons de fonctionner correctement

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.