382 votes

Faire défiler la sortie Shell avec la souris dans tmux

Le défilement de la souris ne fonctionne pas en tmux la façon dont cela fonctionne lorsque je lance Shell sans tmux (dans le terminal Gnome). Il semble que tmux envoie les événements de défilement de la souris comme si j'appuyais sur les touches Haut/Bas. Mais je veux que cela défile à travers le Shell. salida l'histoire. Existe-t-il un moyen de faire fonctionner tmux de cette manière ?

Nota: Je sais comment faire défiler avec le clavier (grâce à une autre question ici).

J'ai essayé le défilement de la souris dans deux versions de tmux :

389voto

Pavlo Points 3551

Pour faire défiler l'historique de la sortie, il faut utiliser ^b + [ Vous pouvez alors utiliser M+V pour aller vers le haut et ^V pour aller vers le bas. Je ne sais pas si vous pouvez utiliser la vraie fonction PgUp y PgDown par contre. Mon terminal n'envoie pas ces touches au tmux. Au lieu de cela, il fait défiler lui-même et non l'historique du tmux.

Pour quitter le mode de copie, appuyez sur ESC

Pour utiliser votre souris dans ce mode (appelé mode copie), appuyez sur ^b + : et entrez ce qui suit :

setw -g mouse on

Note : Dans tmux < 2.1, l'option était nommée mode-mouse et non mouse

Maintenant, lorsque vous passez en mode copie, vous pouvez utiliser votre souris pour le faire défiler. Vous pouvez mettre cette commande dans votre ~/.tmux.conf si vous voulez afin qu'elle se charge à chaque fois que vous lancez tmux.

Mise à jour : A partir de tmux 1.5, cette option permet d'utiliser la molette de défilement pour passer automatiquement en mode copie et faire défiler le tampon de défilement de tmux. Il n'est pas nécessaire d'appuyer d'abord sur Ctrl-B + [ plus. Le fait de revenir à l'invite met également fin automatiquement au mode de copie.

153voto

DannyRe Points 1513

Il y a quelques changements pour Tmux 2.1

  • Le mode souris a été réécrit. Il n'y a maintenant plus d'options pour :

    • souris-resize-pane
    • volet de sélection de la souris
    • fenêtre de sélection de la souris
    • mode-souris

    Au lieu de cela, il n'y a qu'une seule option : "mouse" qui active entièrement le support de la souris. entièrement.

Ce serait

set -g mouse on
# to enable mouse scroll, see https://github.com/tmux/tmux/issues/145#issuecomment-150736967
bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'copy-mode -e'"

75voto

Hrish Points 2213

La version actuelle de tmux (1.5) vous permet simplement d'activer l'option mode-souris, et vous permet de faire défiler avec la molette de la souris.

         mode-mouse [on | off]
                 Mouse state in modes.  If on, the mouse may be used to
                 enter copy mode and copy a selection by dragging, to
                 enter copy mode and scroll with the mouse wheel, or to
                 select an option in choice mode.

Dans mon .tmux.conf :

set-window-option -g mode-mouse on

mise à jour - à partir de tmux 2.1, cette option a été renommée pour devenir simplement mouse

70voto

John L. Jegutanis Points 771

Mise à jour :

Comme d'autres l'ont mentionné, dans les nouvelles versions de tmux, vous devez simplement mettre ce qui suit dans votre .tmux.conf

setw -g mouse on

Recommandation précédente pour les anciennes versions de tmux :

Essayez ceci dans votre .tmux.conf

# Make mouse useful in copy mode
setw -g mode-mouse on

# Allow mouse to select which pane to use
set -g mouse-select-pane on

# 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"

# Scroll History
set -g history-limit 30000

# Set ability to capture on start and restore on exit window data when running an application
setw -g alternate-screen on

# Lower escape timing from 500ms to 50ms for quicker response to scroll-buffer access.
set -s escape-time 50

Tiré de http://brainscraps.wikia.com/wiki/Extreme_Multitasking_with_tmux_and_PuTTY

16voto

libjack Points 2353

Quelqu'un (d'une source que j'ai perdue) a suggéré d'ajouter ce qui suit à ~.tmux.conf :

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

Je n'ai aucune idée de comment cela fonctionne ou de ce qu'il fait, mais cela me permet maintenant de faire défiler la roue de la souris à l'intérieur d'une session tmux sans avoir à entrer dans le mode copie de tmux ; je fais simplement défiler la roue et BAM ! cela fonctionne. Notez que j'utilise terminal.app, mais je me souviens que l'OP a donné la réponse spécifiquement pour une utilisation avec gnome-terminal .

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