web-dev-qa-db-fra.com

Impossible d'utiliser pbcopy pendant une session tmux

Exécution de tmux 1.4 installé à partir des ports de snow-léopard, je ne parviens pas à utiliser la commande OSX pbcopy 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 comprends pas non plus pourquoi tmux gâcherait la redirection de Shell.

Quelqu'un a des indices?

63
lagsalot

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 zsh contre le shell que vous utilisez. Pour la portabilité, vous devriez probablement utiliser $Shell.

Tiré de => robots.thoughtbot.com

Lorsque 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 destinés à GNU _ screenutilisent un appel système privé pour se détacher d'une autre manière. Un correctif dans le suivi des bogues Macports permet à pbcopyname __/pbpastede fonctionner à 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 le demande de tir sur github pour le projet Homebrew pour plus d’informations.

11
David Goodlad

J'ai trouvé un projet github qui enveloppe 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 peu 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.

Il y avait un problème déposé contre tmux , mais il a été fermé car l'auteur de tmux n'a pas de Mac sur lequel tester. Le README du projet github tmux-MacOSX-pasteboard contient d'excellents détails sur les raisons pour lesquelles il est difficile de corriger tmux dans ce cas, ainsi que de nombreuses autres informations concernant la situation. Cela fonctionne pour OSX 10.6 pour moi et la lecture du code semble fonctionner également pour 10.5.

5
mmrobins

Ce problème est résolu avec la dernière version (2.6) changelog https://raw.githubusercontent.com/tmux/tmux/2.6/CHANGES .

3
Fabrice Dufils

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

1
wyattdanger

Il existe un ticket 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.

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
1
terrace