1983 votes

Comment faire défiler dans tmux ?

Comment puis-je faire défiler avec le clavier ou la souris? La page de manuel de tmux indique qu'il faut entrer en mode copie pour faire défiler. Y a-t-il un moyen de faire défiler rapidement sans entrer manuellement en mode copie?

9 votes

De quoi vous préoccupez-vous en termes de surcharge? copy-mode est la manière de visualiser l'historique (et éventuellement de copier des éléments de celui-ci).

3 votes

Pour moi, vous pouvez appuyer sur f7 pour le mode de défilement et q pour quitter.

25 votes

set -g mode-souris on selon la réponse de @chaiyachaiya a été le gagnant pour moi

21voto

Chhetri Points 91

Cela a fonctionné pour moi :

vim ~/.tmux.conf
set -g mode-mouse on      ### Insérer ce paramètre avec vim, puis sourcer le fichier.
tmux source-file ~/.tmux.conf

7 votes

Depuis la version 2.1 (18 octobre 2015), l'option devrait être set -g mouse on

1 votes

+1 pour fournir effectivement le chemin complet du fichier de configuration. La réponse de @chaiyachaiya serait parfaite sinon.

2 votes

+1 car cette solution a fonctionné sans redémarrer le serveur tmux (j'avais des tâches importantes en cours d'exécution). J'ai détaché et réattaché la session tmux cependant. N'oubliez pas le changement de set -g mode-souris on à set -g souris on comme mentionné dans le commentaire de @naoko.

19voto

Emanuel Berg Points 489

C'est ainsi que j'ai fait fonctionner, et les raisons pour lesquelles je pense que c'est mieux que la façon par défaut.

Pour essayer, mettez toutes les sections de code dans ~/.tmux.conf.

Étape 1. Changez la touche préfixe pour ne pas avoir à étirer un peu. 'B' est apparemment une touche proche, mais elle est au milieu des deux index (à 'F' et 'J', respectivement). Comme ce raccourci est essentiel dans tmux, C-j est bien meilleur car il implique aucun mouvement de main (mis à part frapper la touche).

set -g prefix C-j
unbind C-b
bind C-j send-prefix

Étape 2. 'S' (pour entrer en mode copie) est : 1) proche (pour la même raison que ci-dessus), 2) implique l'autre main (comparez: le 1-2 en boxe, ou la commande ls pour afficher les fichiers dans un répertoire), et 3) pourrait être considéré comme un mnémonique pour "scroll" (bien que le mode copie ne soit pas seulement pour faire défiler).

bind s copy-mode

Étape 3. La dernière partie, le défilement proprement dit. 'P' et 'N' sont familiers aux utilisateurs d'Emacs pour cette fonction. Ils sont proches, intuitifs ('P' est au-dessus de 'N' sur le clavier), et mnémoniques ("précédent" et "suivant"). Si vous venez de faire défiler quelque chose dans Emacs, puis passez à tmux, il est logique d'avoir ces raccourcis.

Cependant, j'ai trouvé que 'I' et 'K' sont encore meilleurs - ils sont encore plus proches que 'P' et 'N', et intuitifs (pour la même raison) ; en ce qui concerne les mnémoniques - comme le défilement est une action si courante, les mnémoniques n'auront pas vraiment d'importance car les raccourcis finiront bientôt par contourner votre cerveau et entrer dans la mémoire musculaire.

bind -t emacs-copy 'p' scroll-up
bind -t emacs-copy 'n' scroll-down
bind -t emacs-copy 'i' scroll-up
bind -t emacs-copy 'k' scroll-down

13voto

aymericbeaumet Points 201

Je recommande d'essayer le plugin tmux-better-mouse-mode pour résoudre la plupart de vos problèmes liés à la souris de tmux.

Il est compatible avec Tmux 2.1+ et la nouvelle approche set-option -g mouse on.

1 votes

Merci, c'est la meilleure solution pour moi. Il couvre toutes mes liaisons de la molette de la souris que j'ai ajoutées manuellement (donc je n'en ai plus besoin), et il y a deux fonctionnalités indispensables que je voulais beaucoup : scroll-sans-changer-de-pane en combinaison avec scroll-sans-changer-de-pane et emuler-scroll-pour-pas-de-souris-alternate-buffer. Maintenant, mon expérience d'utilisation de tmux est bien, bien meilleure.

12voto

phocks Points 233

La seule chose qui fonctionne pour moi est de mettre ce qui suit dans ~/.tmux.conf

# Autoriser les titres xterm dans la fenêtre de terminal, faire défiler le terminal avec la barre de défilement, et définir les remplacements de C-Up, C-Down, C-Left, C-Right
set -g terminal-overrides "xterm*:XT:smcup@:rmcup@:kUP5=\eOA:kDN5=\eOB:kLFT5=\eOD:kRIT5=\eOC"

(vous devrez peut-être redémarrer pour que cela prenne effet)

Mise à jour :

J'ai découvert que si vous changez le paramètre dans Connexion Putty > Données > Type de terminal en "putty" (utilisé pour corriger certains problèmes de formatage) de "xterm", alors cette solution cesse de fonctionner.

Mise à jour 2 :

Utilisez ceci si vous voulez "putty" comme type de terminal : set -g terminal-overrides "putty*:XT:smcup@:rmcup@:kUP5=\eOA:kDN5=\eOB:kLFT5=\eOD:kRIT5=\eOC"

2 votes

Celle-ci résout en fait mon problème de défilement dans l'application iPhone également.

0 votes

Le dernier essai que j'ai fait ne fonctionnait plus, mais celui-ci a marché. Étrange. set -ga terminal-overrides ',xterm*:smcup@:rmcup@'

12voto

muneeb Points 111

J'ai beaucoup cherché cela, et la meilleure solution pour moi fonctionne comme mentionné dans ce guide détaillé: http://tangledhelix.com/blog/2012/07/16/tmux-and-mouse-mode/

Ajoutez ces liaisons dans ~/.tmux.conf:

set -g mode-mouse on

unbind +
bind + \
  new-window -d -n tmux-zoom 'clear && echo TMUX ZOOM && read' \;\
  swap-pane -s tmux-zoom.0 \;\
  select-window -t tmux-zoom

unbind -
bind - \
  last-window \;\
  swap-pane -s tmux-zoom.0 \;\
  kill-window -t tmux-zoom

Avec l'approche ci-dessus implémentée, vous pouvez également copier à partir des panneaux dans une fenêtre en "zoomant" dans chaque panneau première en utilisant Prefix +.

Un détail important qui manquait avec le mode souris est de presser Shift avant de sélectionner une zone à copier. Cela va la copier dans le tampon du terminal traditionnel au lieu du tampon de copie de tmux. (https://wiki.archlinux.org/index.php/Tmux#Scrolling_issues)

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X