在tmux会话中无法使用pbcopy


63

从雪豹的端口运行安装的tmux 1.4,我无法使用内置的OSX pbcopy命令。

外面tmux

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

但是在tmux

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

我已经搜索了手册页,但是找不到可能与此行为相关的任何选项。我也不明白为什么tmux会搞乱shell重定向。

有人有任何线索吗?


1
请注意,这可以xclip在Linux上使用。顺便说一句,echo pbpaste应该导致“ pbpaste”。
丹尼斯·威廉姆森

Answers:


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,为了可移植性,您可能应该使用$SHELL

取自=> robots.thoughtbot.com


6
bash如果您正在狂欢,则使用它,而不是zsh

我的bash未正确初始化(.bashrc,.bash_profile未获得)。应该怎么做才能做到这一点?
布拉德·帕克斯

1
必须立即启用该选项 brew install reattach-to-user-namespace --wrap-pbcopy-and-pbpaste
Ian Yang

4
tmux.conf的一个更强大的选项是set-option -g default-command "reattach-to-user-namespace -l $SHELL"
khoomeister 2014年

5
选项--wrap-pbcopy-and-pbpaste已被弃用--with-wrap-pbcopy-and-pbpaste
TaeL

11

tmux从控制台分离(以支持附连/分离),它的方式,不允许它与GUI任何更多的通信这样做。

Apple的GNU修补程序screen使用私有系统调用以不同的方式分离。Macports错误跟踪器中有一个补丁可以使pbcopy/ pbpaste重新运行。我也将其提交给Homebrew存储库,在该存储库中被短暂接受,然后还原。

这是因为应用此修补程序后,它将在重新连接到会话时导致tmux崩溃。

有关更多信息,请参见github上对Homebrew项目的拉取请求


这将是有道理的……除了如果我open .在tmux会话中运行,它会很好地打开Finder窗口,所以“不再允许它与GUI进行通信”似乎不太准确?
jamesdlin

5

我找到了一个包装了tmuxgithub项目,以便pbpaste和pbcopy可以正常工作,并且没有描述导致Homebrew删除补丁的问题。它非常容易安装,只需少量编译即可,.tmux.conf中只有一行

Homebrew有一个补丁程序,但正如其他人提到的那样,它被撤消了,因为它引起了重新连接的问题。

针对tmux提出了一个问题,但由于tmux作者没有Mac可以测试,因此已关闭。github tmux-MacOSX-pasteboard项目上的自述文件详细说明了为何在这种情况下很难修补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的纸板现在在MacPorts的以及与TMUX纸板名
anddam
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.