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 :

14voto

Robert Points 239

Si vous êtes déjà dans une session tmux, vous pouvez exécuter la commande

set mouse on

Rappel : pour exécuter des commandes, utilisez votre préfixe puis : .

7voto

cliss Points 56

Tmux 2.1 introduit de nouveaux liens de souris.

J'ai écrit ces reliures aujourd'hui même. Il lie de manière transparente la molette de la souris aux flèches lorsqu'il n'est pas dans Vim, parce que Vim est capable d'interpréter les codes bruts de la molette de la souris (pour des raisons telles que le choix de la fenêtre Vim à faire défiler pour vous en fonction de celle sur laquelle se trouve votre souris).

Cela signifie que nous pouvons enfin utiliser la souris uniquement pour afficher plusieurs pages de manuel et tout ce qui accepte les touches fléchées. Vous pouvez étendre et enchaîner les if si nécessaire pour mettre en œuvre plus de logique pour vos applications.

bind -n WheelUpPane if "[[ #{pane_current_command} =~ vim ]]" "select-pane -t = ; send-keys -M" "select-pane -t = ; send-keys Up"
bind -n WheelDownPane if "[[ #{pane_current_command} =~ vim ]]" "select-pane -t = ; send-keys -M" "select-pane -t = ; send-keys Down"

Avec cette nouvelle capacité de liaison de la roue, il est possible de script la roue de la souris pour faire n'importe quel comportement sensible au contexte que vous souhaitez.

4voto

Zoso Points 111

Aucune des autres réponses ne me convenait parfaitement en soi. J'ai dû activer l'option de la souris, en utilisant set -g mouse on et a ensuite utilisé Shift + Mouse Wheel pour faire défiler le terminal.

3voto

ulidtko Points 2796

Gnome-terminal fait un tour de passe-passe en traduisant les événements de défilement de la souris en touches de déplacement vers le haut et vers le bas dans des conditions de défilement "habituel" restreint. Par exemple, lorsque vous affichez du texte en utilisant less (cela arrive notamment lorsque vous lisez un homme), vous pouvez faire défiler le contenu en utilisant j , k et les touches fléchées. Mais également avec gnome-terminal vous pouvez le faire avec le défilement de la souris, grâce à l'astuce mentionnée.

Donc je suppose tmux fait une certaine "capture" du terminal, tout comme less - et le même mécanisme dans gnome-terminal se traduit par le fait que le défilement de la souris se traduit par l'appui sur les touches flèches haut/bas.

Vous pouvez désactiver cette fonction dans les paramètres du profil et obtenir le défilement normal en toutes circonstances. Il suffit de décocher la dernière case de l'onglet "défilement" : the checkbox .

1voto

cliss Points 56

https://github.com/NHDaly/tmux-better-mouse-mode

Implémentation configurable et riche en fonctionnalités du contrôle de la souris pour les tmux les plus récents. fortement recommandé.

Vous voudrez probablement utiliser

set -g @emulate-scroll-for-no-mouse-alternate-buffer "on"

avec elle aussi.

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