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?

Llamageddon
la source

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 :

sgzmd
la source
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.

Kieran Moore
la source
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.

Mithril
la source
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>
Jake-low
la source
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

Andrew
la source