web-dev-qa-db-fra.com

Comment puis-je faire défiler dans tmux?

Je viens juste de commencer à utiliser tmux, et je l’aime vraiment beaucoup, mais je dois pouvoir faire défiler les tampons/panneaux/fenêtres que j’ai ouverts. Je me fiche de savoir si cela fonctionne avec la souris ou non. Lorsque je recherche dans la page de manuel de tmux, je ne trouve que deux occurrences du mot "scroll" qui apparaissent, et les deux concernent le mode de copie. Existe-t-il un moyen de faire défiler sans tout le temps système nécessaire pour passer en mode copie?

1168
chadoh

Ctrl-b puis [ alors vous pouvez utiliser vos touches de navigation normales pour faire défiler (par exemple. Up Arrow ou PgDn). presse q quitter le mode de défilement.

Sinon, vous pouvez appuyer sur Ctrl-bPgUp pour aller directement en mode copie et faire défiler une page vers le haut (ce qui semble être ce que vous voudrez la plupart du temps)

En mode vi (voir ci-dessous), vous pouvez également faire défiler la page haut/bas ligne par ligne à l'aide de Shift-k et Shift-j (si vous êtes déjà en mode de défilement). Non déplacé, le curseur se déplace à la place de la page.

Extraits de la page de manuel :

tmux peut être contrôlé à partir d’un client connecté en utilisant une combinaison de touches de préfixe, C-b (Ctrl-b) par défaut, suivie d’une touche de commande.

 The default command key bindings are:

[           Enter copy mode to copy text or view the history.

Function                     vi              emacs
--------                     --              -----
Half page down               C-d             M-Down
Half page up                 C-u             M-Up
Next page                    C-f             Page down
Previous page                C-b             Page up
Scroll down                  C-Down or C-e   C-Down
Scroll up                    C-Up or C-y     C-Up
Search again                 n               n
Search again in reverse      N               N
Search backward              ?               C-r
Search forward               /               C-s

Plus un tas plus. Notez que vous devez appuyer deux fois sur C-b si vous l'utilisez pour le changement de page, car C-b est lié en tant que clé de commande. Reportez-vous à la page de manuel pour obtenir des informations sur la manière de préfacer une commande en mode copie avec un nombre de répétitions.

Vous pouvez définir le mode de reliure à l'aide de Ctrl-b, puis

:set-window-option mode-keys emacs

ou vi.

1481
Dennis Williamson

Eh bien, vous devriez considérer la bonne façon de définir le défilement: ajoutez votre tmux.conf

set -g mouse on        #For tmux version 2.1 and up

ou

set -g mode-mouse on   #For tmux versions < 2.1

Cela a fonctionné pour moi dans les fenêtres et les vitres. Maintenant, tmux est juste parfait.

tmux pratique a plus d'informations sur les fichiers tmux.conf.

263
chaiyachaiya

De mon .tmux.conf:

# Sane scrolling
set -g terminal-overrides 'xterm*:smcup@:rmcup@'

Cela active le défilement xterm natif.

133
togdon

Pour le dernier tmux 2.1, faire défiler correctement votre souris est la bonne réponse:

set -g mouse on
" sane scrolling:
bind -n WheelUpPane if-Shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'copy-mode -e; send-keys -M'"

il ne suffit pas de recharger votre fichier .tmux.conf pour redémarrer votre tmux, par exemple. tmux kill-server && tmux

extrait de https://github.com/tmux/tmux/issues/145

44
Flov

Dans mon cas, juste opt + UpArrow et opt + DownArrow sur OSX.

13
ythdelmar

C’est ainsi que j’ai fonctionné et les raisons pour lesquelles j’estime que c’est mieux que la méthode par défaut.

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

Étape 1. Changez la clé de préfixe pour ne pas avoir à atteindre un bit. "B" est apparemment une touche proche, mais il se trouve au milieu des deux index (respectivement sur "F" et "J"). Parce que ce raccourci est essentiel dans tmux, C-j est bien meilleur car il ne nécessite aucun mouvement de la main (à part appuyer sur 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) fermer (même raison que ci-dessus), 2) implique l’autre main (comparez: le 1-2 dans la boxe ou la commande ls pour afficher les fichiers dans répertoire) et 3) pourrait être considéré comme une mnémonique pour "faire défiler" (bien que le mode de copie ne se limite pas au défilement).

bind s copy-mode

Étape 3. La dernière partie, le défilement réel. P et N sont familiers à cette fin pour les utilisateurs d’Emacs. Ils sont proches, intuitifs ("P" est supérieur à "N" sur le clavier) et mnémoniques ("précédent" et "suivant"). Si vous venez de faire défiler dans Emacs, puis passez à tmux, il est logique de disposer de 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); Quant aux mnémoniques - le défilement étant chose courante, les mnémoniques n’auront aucune importance, car les raccourcis contourneront bientôt votre cerveau et entreront 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
10
Emanuel Berg

J'ai cherché beaucoup autour de cela et la meilleure solution pour moi fonctionne comme indiqué 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 mise en œuvre, vous pouvez également copier des sous-fenêtres d'une fenêtre en passant par zoom dans chaque sous-fenêtre en utilisant Prefix + .

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

6
muneeb

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

# Allow xterm titles in terminal window, terminal scrolling with scrollbar, and setting overrides of 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)

Mettre à jour:

J'ai constaté que si vous modifiez le paramètre dans PuTTY Connection> Données> Type de terminal en "PuTTY" (utilisé pour résoudre certains problèmes de formatage) à partir de "xterm", 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"

5
phocks

Je vous recommande d'essayer le plug-in tmux-better-better-mode - pour résoudre la plupart des problèmes liés à la souris tmux.

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

5
aymericbeaumet

Cela a fonctionné pour moi:

vim ~/.tmux.conf
set -g mode-mouse on      ###Insert this setting with vim, then source the file.
tmux source-file ~/.tmux.conf
1
Chhetri