Impossible d'utiliser pbcopy pendant une session tmux

63

Exécution de tmux 1.4 installé à partir de ports sur snow-léopard, je ne parviens pas à utiliser la pbcopycommande OSX intégrée .

En dehors de tmux:

> echo "abc" | pbcopy
> echo $(pbpaste) # or using ^v
abc

Mais à l'intérieur de tmux:

> echo "123" | pbcopy
> echo $(pbpaste)
abc

J'ai parcouru la page de manuel, mais je ne trouve aucune option en rapport avec ce comportement. Je ne peux pas non plus comprendre pourquoi tmuxcela compliquerait la redirection de shell.

Quelqu'un a des indices?

lagsalot
la source
1
Notez que cela fonctionne avec xclipLinux. À propos, echo pbpastedevrait aboutir à "pbpaste".
Dennis Williamson

Réponses:

75

Utiliser l'homebrew

brew install reattach-to-user-namespace --with-wrap-pbcopy-and-pbpaste

ou Macports

sudo port install tmux-pasteboard

Ajoutez les éléments suivants au début de ~ / .tmux.conf

set-option -g default-command "reattach-to-user-namespace -l zsh"

Vous voudrez peut-être échanger le zshpour quel shell que vous utilisez, pour la portabilité, vous devriez probablement utiliser $SHELL.

Tiré de => robots.thoughtbot.com

William Bettridge-Radford
la source
6
utiliser bashsi vous êtes sur bash au lieu dezsh
trois
mon bash n'est pas initialisé correctement (.bashrc, .bash_profile non source). Comment cela devrait-il être fait?
Brad Parks
1
Vous devez activer l'option maintenant brew install reattach-to-user-namespace --wrap-pbcopy-and-pbpaste
Ian Yang
4
Une option plus robuste pour tmux.conf estset-option -g default-command "reattach-to-user-namespace -l $SHELL"
khoomeister
5
L'option a --wrap-pbcopy-and-pbpasteété déconseillée avec la --with-wrap-pbcopy-and-pbpasteplace!
TaeL
11

Lorsqu'il tmuxse détache de la console (afin de prendre en charge l'attachement / le détachement), il le fait d'une manière qui ne lui permet plus de communiquer avec l'interface graphique.

Les correctifs d’Apple pour GNU screenutilisent un appel système privé pour se détacher d’une manière différente. Il existe un correctif dans le traqueur de bogues Macports qui fait fonctionner pbcopy/ pbpastefonctionne à nouveau. Je l'ai également soumis au référentiel Homebrew, où il a été brièvement accepté, puis annulé.

En effet, lorsque ce correctif est appliqué, cela provoque le blocage de tmux lors de la réattachement à une session.

Voir la demande de tirage sur github pour le projet Homebrew pour plus d'informations.

David Goodlad
la source
Cela aurait du sens ... sauf que si je lance, disons, open .dans une session tmux, cela ouvre une fenêtre du Finder sans problème, donc "ne lui permet plus de communiquer avec l'interface graphique" ne semble pas assez précis?
jamesdlin
5

J'ai trouvé un projet github qui englobe tmux pour que pbpaste et pbcopy fonctionnent et ne présentent pas les problèmes décrits qui ont amené Homebrew à supprimer le correctif. C'est assez facile à installer, juste un petit morceau de compilation et une ligne dans votre fichier .tmux.conf

Homebrew avait un correctif, mais comme d'autres l'ont mentionné, il a été retiré parce qu'il posait des problèmes de réattachement.

Un problème a été déposé contre tmux , mais il a été fermé car l'auteur de tmux n'a pas de Mac sur lequel tester. Le fichier LISEZMOI sur le projet github tmux-MacOSX-pasteboard explique en détail pourquoi il est difficile de corriger tmux dans ce cas, ainsi que de nombreuses autres informations sur la situation. Cela fonctionne sous OSX 10.6 pour moi et la lecture du code semble fonctionner également pour 10.5.

mmrobins
la source
1

Il existe un billet ouvert ici: http://sourceforge.net/tracker/index.php?func=detail&aid=2960136&group_id=200378&atid=973265

Date: 2010-02-28 11:20:57 UTC Expéditeur: nicm

Il n'y a aucune raison pour que vous ne puissiez pas simplement y diriger tmux showb, bien sûr.

Date: 2010-02-28 11:20:05 UTC Expéditeur: nicm

Pas à moins que quelqu'un m'envoie du code pour le faire ou du matériel avec OS X dessus.

J'ai essayé de piping showb to pbcopy et cela n'a pas fonctionné.

~: echo "12345"
12345
[use copy-mode to copy "12345"]
~: tmux showb
12345
~: tmux showb | pbcopy
~: pbpaste

terrasse
la source
1

J'utilise tmux-MacOSX-pasteboard sur Snow Leopard et Lion et corrige les fonctionnalités de pbcopy / pbpaste dans tmux. Facile à installer aussi.

wyattdanger
la source
3
tmux-MacOSX-pasteboard est maintenant aussi dans macports avec le nom
tmux