Copier dans le presse-papiers de Tmux dans El Capitan

19

Je suis assez satisfait des changements de terminal à El Capitan (voir par exemple cette question ).

Cependant, je ne peux pas comprendre comment activer la copie dans le presse-papiers du système depuis Tmux. Par exemple, maintenant que je suis capable de sélectionner correctement du texte dans Tmux par la souris, comment puis-je également copier le texte sélectionné dans le presse-papiers, en plus du tampon de Tmux?

J'ai les éléments suivants dans mon tmux.conf:

setw -g mode-mouse on
set -g mouse-select-pane on
set -g mouse-resize-pane on
set -g mouse-select-window on

setw -g mode-keys vi
bind-key -t vi-copy 'v' begin-selection
bind-key -t vi-copy 'y' copy-selection

J'ai essayé de modifier la dernière ligne en

bind-key -t vi-copy 'y' copy-selection \; copy-pipe "pbcopy"

mais cela n'a pas vraiment fonctionné. Serait reconnaissant pour des suggestions!

Merci!

siphiuel
la source
Cmd-C ne fonctionne pas?
nohillside
1
@partix - non, car le texte copié est automatiquement désélectionné après avoir relâché le bouton de la souris (ou le trackpad). Bien sûr, cela fonctionne dans Terminal, mais pas depuis Tmux dans le terminal.
siphiuel
La mise à jour vers Tmux 2.1 a interrompu le défilement de la souris dans les volets Tmux.
siphiuel

Réponses:

27

En fait, je viens de découvrir une solution très simple pour réactiver la copie à l'aide de Cmd + C.

Dans l'application Terminal par défaut, accédez à Affichage -> "Autoriser les rapports de la souris" et décochez-la. C'est ça.

PS: Évidemment, les nouvelles fonctionnalités intéressantes comme le glissement de l'écran partagé dans tmux cessent de fonctionner après avoir décoché le rapport de la souris.

Oplatek
la source
PS: J'ai utilisé précédemment la solution de @siphiuel, qui fonctionne également très bien.
Oplatek
1
Je vous remercie!!! C'est le moyen le plus simple! Seulement que l'histoire est brisée, je ne peux voir qu'une partie de l'histoire
Sato
Super sympa. Cela fonctionne
ShikharDua
et cela fonctionne également pour une session tmux distante; Je pense que la bind-key ... copy-pipesolution pourrait ne fonctionner que si c'est une session tmux locale. Là encore, peut-être que si vous effectuez la session tmux distante dans une session tmux locale, cela pourrait fonctionner? Quoi qu'il en soit, décocher "Autoriser les rapports de la souris" a fonctionné pour moi, et il y a même un raccourci ⌘-R (Cmd-R) pour que vous puissiez rapidement le désactiver pour faire une copie, puis à nouveau.
Aaron Wallentine,
24

Si vous utilisez iTerm2 3.x, vous pouvez faire fonctionner le copier / coller en activant Applications in terminal may access clipboard:

entrez la description de l'image ici

Mettez simplement le texte en surbrillance avec votre souris pour le copier dans le presse-papiers OS X!

Vous pouvez également coller du presse-papiers OS X dans tmux avec le Cmd+ habituel V.

Jerome Dalbert
la source
2
c'était la solution la plus simple pour moi.
lennart
C'est génial!
mljrg
17

Si vous maintenez la touche de fonction enfoncée, vous pouvez également sélectionner et copier dans le presse-papiers avec apple + c.

amohr
la source
Nous recherchons plus qu'une réponse sur une seule ligne. Essayez d'élargir votre réponse pour donner plus de détails.
Allan
2
@Allan Ceci est une réponse complète, même s'il ne s'agit que d'une seule ligne. C'est si simple.
pkuhar
btw, j'ai trouvé que cela ne fonctionne que sur le clavier de l'ordinateur portable, pas sur les claviers attachés :(
amohr
8

En fait, j'avais tort de déclarer que copy-pipecela ne fonctionne pas. Il le fait, et copy-selectionest alors superflu, car les copy-pipedeux copient du texte sur la table de montage Tmux et les tuyaux dans une commande shell arbitraire. Donc, la ligne suivante fonctionne:

bind-key -t vi-copy 'y' copy-pipe "pbcopy"

Cependant, il faut appuyer yavant de relâcher le bouton de la souris. Je suis tombé sur cela dans la documentation du plugin tmux-yank :

"Lorsque vous effectuez une sélection à l'aide de tmux mode-mouse on ou mode-mouse copy-mode, vous ne pouvez pas vous fier au comportement par défaut" relâcher la souris après la sélection pour copier ". Au lieu de cela, appuyez sur y avant de relâcher la souris."

Cela fonctionne donc, mais avec un besoin quelque peu ennuyeux d'appuyer ypour copier le texte sélectionné par la souris.

siphiuel
la source
3
Si vous utilisez Terminal.app: dans macOS Sierra, cela ne fonctionnera pas en raison de la régression du comportement de Terminal.app. Vous devrez à nouveau utiliser le hack "rattacher à l'espace de noms utilisateur".
m1keil
1
D'accord sur le commentaire @ m1keil. De plus, pour une raison quelconque, j'ai dû compiler un espace de noms à rattacher à l'utilisateur avec des commutateurs supplémentaires, comme ceci: brew install reattach-to-user-namespace --with-wrap-pbcopy-and-pbpaste(
j'utilise
4

En utilisant tmux version 2.2 ou ultérieure, ajoutez ce qui suit à votre fichier tmux.conf:

bind-key -t emacs-copy MouseDragEnd1Pane copy-pipe "pbcopy"
bind-key -t vi-copy MouseDragEnd1Pane copy-pipe "pbcopy"
Kyle Kloepper
la source
Fonctionne pour El Capitan 10.11, tmux 2.7
Homer
3

La réponse de @Oplatek prend effet

Dans l'application Terminal par défaut, accédez à Affichage -> "Autoriser les rapports de la souris" et décochez-la.

Mais de cette façon, nous ne pourrions pas faire défiler l'écran avec la souris.

Voici une autre façon sans désactiver Allow mouse reporting: Appuyez sur Fnet sélectionnez le texte avec la souris.

secfree
la source
0

En utilisant tmux 2.2, OS X El Capitan, Terminal Version 2.6.1 (la valeur par défaut livrée avec El Capitan), la configuration suivante fonctionne parfaitement (jusqu'à présent).

$ cat ~/.tmux.conf
set -g mouse on
bind-key -t emacs-copy MouseDragEnd1Pane copy-pipe "pbcopy"
bind-key -t vi-copy MouseDragEnd1Pane copy-pipe "pbcopy"

Pour copier, appuyez sur le bouton gauche de la souris, marquez le texte et relâchez. Le texte marqué est alors dans le presse-papiers et peut être collé avec Cmd+ vcomme d'habitude.

Kjell
la source
-2

je ne trouve qu'une seule façon

ouvrir les paramètres / profils du terminal dans les informations sur le terminal changer le type de terminal de xterm-256 en ansi ouvrir une nouvelle fenêtre de terminal et profiter :)

Levan Petrosian
la source