No se puede usar pbcopy mientras está en la sesión tmux

63

Ejecutando tmux 1.4 instalado desde los puertos en Snow-Leopard No puedo usar el pbcopycomando OSX incorporado .

Fuera de tmux:

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

Pero dentro de tmux:

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

Recorrí la página de manual pero no encuentro ninguna opción que pueda estar relacionada con este comportamiento. Tampoco puedo entender por tmuxqué meterse con la redirección de shell.

Alguien tiene alguna pista?

lagsalot
fuente
1
Tenga en cuenta que esto funciona con xclipLinux. Por cierto, echo pbpastedebería resultar en "pbpaste".
Dennis Williamson

Respuestas:

75

Usando homebrew

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

o Macports

sudo port install tmux-pasteboard

Anteponga lo siguiente a la parte superior de ~ / .tmux.conf

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

Es posible que desee cambiar el zshshell por el que esté utilizando, por la portabilidad que probablemente debería usar $SHELL.

Tomado de => robots.thoughtbot.com

William Bettridge-Radford
fuente
66
úsalo bashsi estás en bash en lugar dezsh
tres
mi bash no está inicializado correctamente (.bashrc, .bash_profile no tiene origen). ¿Cómo se debe hacer esto para hacer eso?
Brad Parks,
1
Debe habilitar la opción ahora brew install reattach-to-user-namespace --wrap-pbcopy-and-pbpaste
Ian Yang
44
Una opción más robusta para tmux.conf esset-option -g default-command "reattach-to-user-namespace -l $SHELL"
khoomeister el
55
la opción --wrap-pbcopy-and-pbpastefue desaprobada usando en su --with-wrap-pbcopy-and-pbpastelugar!
TaeL
11

Cuando se tmuxdesconecta de la consola (para admitir la conexión / desconexión), lo hace de una manera que ya no le permite comunicarse con la GUI.

Los parches de Apple para GNU screenusan una llamada de sistema privado para desconectarse de una manera diferente. Hay un parche en el rastreador de errores de Macports que hace pbcopy/ pbpastefunciona de nuevo. También lo envié al repositorio de Homebrew, donde fue aceptado brevemente, y luego lo revertí.

Esto se debe a que cuando se aplica este parche, hace que tmux se bloquee cuando se vuelve a conectar a una sesión.

Consulte la solicitud de extracción en github para el proyecto Homebrew para obtener más información.

David Goodlad
fuente
Esto tendría sentido ... excepto que si ejecuto, por ejemplo, open .en una sesión de tmux, se abre una ventana del Finder muy bien, por lo que "ya no permite que se comunique con la GUI" ¿no parece ser bastante preciso?
jamesdlin
5

Encontré un proyecto github que envuelve tmux para que pbpaste y pbcopy funcionen y no tiene los problemas descritos que causaron que Homebrew elimine el parche. Es bastante fácil de instalar, solo un poco de compilación y una línea en su .tmux.conf

Homebrew tenía un parche, pero como otros mencionaron, se retiró porque causó problemas con la reconexión.

Se presentó un problema contra tmux , pero se cerró porque el autor de tmux no tiene una Mac para probar. El archivo README en el proyecto github tmux-MacOSX-pasteboard tiene excelentes detalles sobre por qué parchear tmux es difícil en este caso, y un montón de otra información que rodea la situación. Para mí funciona en OSX 10.6 y parece que leer el código funcionará también para 10.5.

mmrobins
fuente
1

Aquí hay un boleto abierto: http://sourceforge.net/tracker/index.php?func=detail&aid=2960136&group_id=200378&atid=973265

Fecha: 2010-02-28 11:20:57 UTC Remitente: nicm

No hay ninguna razón por la que no pueda simplemente canalizar tmux showb, por supuesto.

Fecha: 2010-02-28 11:20:05 UTC Remitente: nicm

No, a menos que alguien me envíe un código para hacerlo o algún hardware con OS X.

Traté de canalizar showb a pbcopy y no funcionó.

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

terraza
fuente
1

Uso tmux-MacOSX-pasteboard tanto en Snow Leopard como en Lion y te parchea la funcionalidad pbcopy / pbpaste en tmux. Fácil de instalar, también.

Wyattdanger
fuente
3
tmux-MacOSX-pasteboard ahora también está en macports con el nombre de tmux-
pasteboard