tmuxセッション中にpbcopyを使用できません


63

Snow-Leopardのポートからインストールされたtmux 1.4を実行しています組み込みのOSX pbcopyコマンドを使用できません。

の外側tmux

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

しかし、内部tmux

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

マニュアルページを精査しましたが、この動作に関連するオプションは見つかりません。またtmux、シェルのリダイレクトが混乱する理由も理解できません。

誰にも手がかりがありますか?


1
これxclipはLinux上で使用すると機能することに注意してください。ちなみに、echo pbpaste「pbpaste」になるはずです。
デニスウィリアムソン

回答:


75

自作を使用する

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

またはMacports

sudo port install tmux-pasteboard

〜/ .tmux.confの先頭に次を追加します

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

zsh使用しているシェルのいずれかを交換したい場合があります$SHELL。移植性のために、おそらくを使用する必要があります。

=> robots.thoughtbot.comから 取得


6
使用bashあなたの代わりにはbashにしている場合zsh
3

bashが正しく初期化されていません(.bashrc、.bash_profileがソースされていません)。これを行うにはどうすればよいですか?
ブラッドパークス

1
今オプションを有効にする必要があります brew install reattach-to-user-namespace --wrap-pbcopy-and-pbpaste
イアン・ヤン

4
tmux.confのより堅牢なオプションはset-option -g default-command "reattach-to-user-namespace -l $SHELL"
khoomeister 14

5
代わり--wrap-pbcopy-and-pbpasteに使用するオプションは廃止され--with-wrap-pbcopy-and-pbpasteました!
テール

11

場合tmux(デタッチ/アタッチサポートするために)コンソールから切り離し、それはもはやGUIと通信することを許可しないようにしてそうします。

AppleのGNUへのパッチscreenは、プライベートシステムコールを使用して別の方法でデタッチします。作るMacPortsのバグトラッカーでのパッチがあるpbcopy/ pbpaste再び仕事が。また、Homebrewリポジトリに提出し、そこで簡単に受け入れられ、その後元に戻されました。

これは、このパッチを適用すると、セッションに再接続するときにtmuxがクラッシュするためです。

詳細については、Homebrewプロジェクトのgithubプルリクエストを参照してください。


これは理にかなっています...たとえば、open .tmuxセッションで実行すると、Finderウィンドウがうまく開きますので、「GUIとの通信をこれ以上許可しない」というのは正確ではないようです。
ジェームズリン

5

pbpasteとpbcopyが機能するようにtmuxをラップするgithubプロジェクトを見つけましたが、Homebrewがパッチを削除する原因となった問題はありません。インストールは非常に簡単で、わずかなコンパイルと.tmux.confの1行だけです。

Homebrewにはパッチがありましたが、他の人が述べたように、再アタッチの問題を引き起こすため、バックアウトされました。

tmuxに対してファイルされた問題がありましたが、tmuxの作成者がテストするMacを持っていないため、クローズされました。github tmux-MacOSX-pasteboardプロジェクトのREADMEには、この場合tmuxにパッチを当てるのが難しい理由についての詳細と、状況を取り巻く他の情報がたくさんあります。私にとってはOSX 10.6で動作し、コードを読むと10.5でも動作するようです。



1

ここにオープンチケットがあります:http : //sourceforge.net/tracker/index.php?func=detail&aid=2960136&group_id=200378&atid=973265

日付:2010-02-28 11:20:57 UTC送信者:nicm

もちろん、tmux showbをパイプで渡せない理由はありません。

日付:2010-02-28 11:20:05 UTC送信者:nicm

誰かが私にそれを行うためのコードを送ったり、OS Xを搭載したハードウェアを送ったりしない限り。

showbをpbcopyにパイプしようとしましたが、うまくいきませんでした。

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


1

Snow LeopardとLionの両方でtmux-MacOSX- pasteboard を使用し、tmuxで pbcopy / pbpaste機能にパッチを適用します。インストールも簡単です。


3
tmuxは、MacOSXは、ペーストボードはtmuxは、ペーストボード名と同様のMacPortsになりました
anddam
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.