Impossibile utilizzare pbcopy durante la sessione di tmux


63

Eseguendo tmux 1.4 installato dalle porte su snow-leopard, non riesco a utilizzare il pbcopycomando OSX integrato .

Al di fuori di tmux:

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

Ma all'interno di tmux:

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

Ho controllato la pagina man ma non riesco a trovare alcuna opzione che possa essere correlata a questo comportamento. Inoltre non riesco a capire perché tmuxsi debba confondere con il reindirizzamento della shell.

Qualcuno ha qualche indizio?


1
Nota che funziona usando xclipsu Linux. A proposito, echo pbpastedovrebbe risultare in "pbpaste".
Dennis Williamson,

Risposte:


75

Usando l'homebrew

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

o Macports

sudo port install tmux-pasteboard

Preparare quanto segue all'inizio di ~ / .tmux.conf

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

Potresti voler sostituire la zshshell con quella che stai usando, per la portabilità che dovresti probabilmente usare $SHELL.

Tratto da => robots.thoughtbot.com


6
usa bashse sei su bash invece dizsh
tre

il mio bash non è inizializzato correttamente (.bashrc, .bash_profile non fornito). Come dovrebbe essere fatto per farlo?
Brad Parks

1
Ora devo abilitare l'opzione brew install reattach-to-user-namespace --wrap-pbcopy-and-pbpaste
Ian Yang,

4
Un'opzione più solida per tmux.conf èset-option -g default-command "reattach-to-user-namespace -l $SHELL"
khoomeister il

5
l'opzione è --wrap-pbcopy-and-pbpastestata deprecata usando --with-wrap-pbcopy-and-pbpasteinvece!
TaeL

11

Quando si tmuxstacca dalla console (per supportare il collegamento / scollegamento), lo fa in un modo che non gli consente più di comunicare con la GUI.

Le patch di Apple per GNU screenusano una chiamata di sistema privata per staccarsi in modo diverso. C'è una patch nel tracker dei bug di Macports che rende pbcopy/ pbpastefunziona di nuovo. L'ho anche inviato al repository Homebrew, dove è stato brevemente accettato, quindi ripristinato.

Questo perché quando viene applicata questa patch, provoca l'arresto anomalo di tmux quando si ricollega a una sessione.

Vedi la richiesta pull su github per il progetto Homebrew per maggiori informazioni.


Questo avrebbe senso ... tranne che se corro, diciamo, open .in una sessione di tmux, si apre una finestra del Finder, quindi "non gli permette più di comunicare con la GUI" non sembra abbastanza preciso?
jamesdlin,

5

Ho trovato un progetto github che avvolge tmux in modo che pbpaste e pbcopy funzionino e non abbia i problemi descritti che hanno portato Homebrew a rimuovere la patch. È abbastanza facile da installare, solo un po 'di compilation e una riga nel tuo .tmux.conf

Homebrew aveva una patch, ma come altri hanno già detto, è stato ritirato perché causava problemi con il ricollegamento.

Si è verificato un problema con tmux , ma è stato chiuso perché l'autore di tmux non ha un Mac su cui testare. Il file README sul progetto github tmux-MacOSX-pasteboard contiene grandi dettagli sul perché in questo caso è difficile applicare patch a tmux e molte altre informazioni sulla situazione. Funziona su OSX 10.6 per me e leggere il codice sembra funzionare anche per 10.5.



1

C'è un biglietto aperto qui: http://sourceforge.net/tracker/index.php?func=detail&aid=2960136&group_id=200378&atid=973265

Data: 2010-02-28 11:20:57 UTC Mittente: nicm

Non c'è motivo per cui non si possa semplicemente pipe tmux showb, ovviamente.

Data: 2010-02-28 11:20:05 UTC Mittente: nicm

A meno che qualcuno non mi invii del codice per farlo o dell'hardware con OS X su di esso.

Ho provato a piping showb su pbcopy e non ha funzionato.

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


1

Uso tmux-MacOSX-pasteboard su Snow Leopard e Lion e corregge le funzionalità pbcopy / pbpaste in tmux. Anche facile da installare.


3
tmux-MacOSX-pasteboard ora è anche in macports con il nome di tmux-pasteboard
anddam
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.