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 ?

319voto

Yves Blusseau Points 161
  1. Copier le texte : sélectionnez le texte et appuyez sur la souris. left-button avec shift également la pression de la touche.
  2. Collez le texte avec shift clé + middle-button

105voto

dr-jan Points 673

Pour restaurer la configuration par défaut du copier/coller, vous devez (au moins temporairement) désactiver le support de la souris dans tmux :

prefix : set -g mouse off

prefix est la clé d'accès à tmux ( Ctrl + B par défaut, à moins que vous ne le recadriez). : lance le mode commande et set -g définit le paramètre de manière globale.

Lorsque le mode souris est désactivé, les fonctions standard de copier/coller fournies par votre système d'exploitation fonctionnent comme prévu.

Vous pouvez également "maximiser" le volet actuel, afin de pouvoir copier facilement plusieurs lignes.


Si vous travaillez avec une ancienne version (pré-2.1) de tmux, vous devez plutôt utiliser ce qui suit :

prefix : set -g mode-mouse off

Il y a plus de détails et quelques liaisons de touches pratiques pour automatiser tout cela ici :

http://tangledhelix.com/blog/2012/07/16/tmux-and-mouse-mode/

L'idée principale de l'article dont le lien figure ci-dessus est cet extrait de .tmux.conf :

# disable mouse control by default - change 'off' to 'on' to enable by default.
setw -g mode-mouse off
set-option -g mouse-resize-pane off
set-option -g mouse-select-pane off
set-option -g mouse-select-window off
# toggle mouse mode to allow mouse copy/paste
# set mouse on with prefix m
bind m \
    set -g mode-mouse on \;\
    set -g mouse-resize-pane on \;\
    set -g mouse-select-pane on \;\
    set -g mouse-select-window on \;\
    display 'Mouse: ON'
# set mouse off with prefix M
bind M \
    set -g mode-mouse off \;\
    set -g mouse-resize-pane off \;\
    set -g mouse-select-pane off \;\
    set -g mouse-select-window off \;\
    display 'Mouse: OFF'
# zoom this pane to full screen
bind + \
    new-window -d -n tmux-zoom 'clear && echo TMUX ZOOM && read' \;\
    swap-pane -s tmux-zoom.0 \;\
    select-window -t tmux-zoom
# restore this pane
bind - \
    last-window \;\
    swap-pane -s tmux-zoom.0 \;\
    kill-window -t tmux-zoom

47voto

fluder Points 11

Si "set -g mode-mouse on" vous pouvez faire cette astuce :

Sur Mac, appuyez sur le bouton "fn", puis sélectionnez le texte et copiez-le avec le clic droit de la souris ou le clavier cmd+c.

37voto

winklerrr Points 1255

Tmux 2.6+

La souris doit être activée pour que cela fonctionne, alors faites-le : Ctrl + B puis tapez :set -g mouse on . (Ou mieux : définissez ce paramètre dans votre tmux.conf pour la cohérence).

Windows 10

Avec le mode souris activé, sous Windows, vous devez appuyer sur Shift comme expliqué ci-dessous.

Copie

  1. Maintenez la pression Shift et sélectionnez avec votre souris le texte que vous voulez copier.
  2. Maintenant, cliquez avec le bouton droit de la souris pour copier le texte sélectionné (sans maintenir la touche Shift ).

Cas de figure : vitres divisées horizontalement

Lorsque vous travaillez avec des volets divisés horizontalement, la sélection n'est pas aussi facile car une sélection sur plusieurs lignes s'étend également sur plusieurs volets, sélectionnant les parties de texte que vous ne voulez pas sélectionner. Pour éviter que la sélection ne quitte le volet actuel, appuyez également sur Ctrl tout en appuyant sur Shift (merci à @Franck).

Une autre solution serait de changer rapidement la disposition des volets (par exemple avec Ctrl + B et ensuite Space ) et le modifier à nouveau par la suite.

Pâte

  1. Maintenez la pression Shift et faites un clic droit pour insérer le texte copié.

C'est aussi simple que cela. Profitez-en !

macOS

Avec le mode souris activé, sur macOS vous devez appuyer sur fn à la place. Pour copier la sélection, utilisez CMD + C comme d'habitude.

11voto

Andy Points 8860

Modifié à partir de aquí - J'utilise xclip au lieu de xsel dans l'original :

bind -T root MouseDown2Pane run -b "xclip -o | tmux load-buffer - && tmux paste-buffer -s ' '"

Cela fonctionne allègrement pour moi dans tmux 2.5-rc2

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