153 votes

Récupération de l'ancien comportement copier-coller dans tmux, avec la souris

C'est ce que je faisais dans tmux pour copier-coller (en utilisant la souris, le clavier fonctionne différemment et ce n'est pas ce qui m'intéresse) :

  1. Sélectionner le texte avec la souris, bouton gauche enfoncé
  2. Coller du texte avec le bouton du milieu

J'ai mis à jour mon système d'exploitation, et j'ai obtenu une nouvelle version de tmux. Je n'ai pas changé mon .tmux.conf fichier de configuration.

C'est ce que je dois faire avec la version actuelle de tmux , 1.6 (qui est livré pré-packagé dans la dernière version de crunchbang linux) :

  1. Sélectionner le texte avec la souris, bouton gauche enfoncé et shift clé
  2. Coller du texte avec le bouton du milieu
  3. Le terminal est bloqué, une petite zone d'information affiche des chiffres en haut à droite du volet actuel (c'est-à-dire que le terminal est bloqué). [0/24] (probablement quelque chose en rapport avec le nombre de caractères collés), qui ne signifient pas grand chose pour moi et dont je n'ai pas besoin / envie (edit : il semble que copy-mode est inscrit automatiquement ici)
  4. Je dois appuyer sur le q pour retrouver un terminal fonctionnel.

C'est trop de tracas pour quelque chose que je fais des dizaines de fois par jour. Comment faire pour que l'ancien mécanisme fonctionne à nouveau ?

0voto

jftuga Points 420

En me basant sur les autres réponses postées ici, j'ai créé une solution concise qui fonctionne avec (au moins) tmux 2.8 y tmux 3.1 .

Vous pouvez basculer tmux mouse support en appuyant sur prefix - M . Dans le .tmux.conf incluez cette ligne :

bind-key -T prefix m run "m=$(tmux show -g mou|grep -q on;echo $?);tmux set -g mou $m;tmux display mouse:\$m"

Cela affichera mouse: 1 lorsqu'il est activé et mouse: 0 lorsqu'il est désactivé. En appuyant de façon répétée sur prefix - M permet de basculer le mode de la souris entre sur y off .

Voir aussi : support de la souris tmux

EDIT : Si vous voyez une commande returned 1 vous devrez alors utiliser le message d'erreur suivant à la place pour tmux 3.1 o tmux 3.2 :

bind-key -T prefix m set -g mouse\; display 'Mouse: #{?mouse,ON,OFF}'

(cette solution a été mentionnée précédemment)

0voto

Voici une version mise à jour de la bascule de la souris, testée sur tmux v3.1

Puisque le code est une ligne unique, afin de le garder court, j'ai utilisé t pour le nom de la variable, et j'ai remplacé l'instruction if par une conditionnelle recherchant la lettre n. La conditionnelle nous permet de supprimer beaucoup d'espaces et de points-virgules, ce qui raccourcit encore la ligne.

bind m run "[[ `tmux show -gv mou` = *n* ]]&&t=off||t=on;tmux set -g mou \$t;tmux display-message \"mouse mode: \$t\""

Voici l'extrait de code développé sous une forme plus lisible

[[ `tmux show -gv mouse` = *n* ]] && t=off || t=on
tmux set -g mouse $t
tmux display-message "mouse mode: $t"

-1voto

webh Points 117

J'utilise la liaison suivante pour sélectionner du texte en appuyant sur le bouton gauche de la souris -.

bind -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "/mnt/c/Windows/System32/clip.exe"

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X