2012-09-05 67 views
61

现在要复制到系统剪贴板,我必须通过鼠标文本在tmux窗口中选择Shift键。然后,我要运行这个命令:如何在鼠标选择后从tmux输出复制到系统剪贴板?

tmux save-buffer - | reattach-to-user-namespace pbcopy 

任何机会,以保存到系统剪贴板更容易?键绑定或更好地执行后,Shift键释放。

我TMUX配置:https://gist.github.com/3641580

+0

这里是一个类似的Q&A上[unix.stackexchange](http://unix.stackexchange.com/questions/15715 /获取-TMUX到拷贝-A-缓冲器到所述剪贴板)。 – crw

+2

任何这些工作在MacOS,特别是塞拉利昂?或者说,他们都没有,有人知道会有什么吗?这个问题标有'osx',但答案是谈论左键和中键... – dwanderson

回答

145

太工程如果使用iTerm2,您可以在TMUX会话复制文本,按住选项键,同时拖动鼠标进行选择。

然后,它应该能够与Cmd的 + V像往常一样在任何地方粘贴文本。 在这里找到它:http://web.archive.org/web/20131226003700/http://ootput.wordpress.com/2013/08/02/copy-and-paste-in-tmux-with-mouse/

+0

谢谢!为我工作。 – omarish

+18

不能与TMUX窗格 –

+3

这样一个简单的解决方案帮助,希望我知道/ Google搜索/想通了一年前。 –

27

有一个类似的问题回答这里:https://unix.stackexchange.com/questions/15715/getting-tmux-to-copy-a-buffer-to-the-clipboard

发现的解决方案有:

# move x clipboard into tmux paste buffer 
bind C-p run "tmux set-buffer \"$(xclip -o)\"; tmux paste-buffer" 
# move tmux copy buffer into x clipboard 
bind C-y run "tmux show-buffer | xclip -i" 

检查也:http://awhan.wordpress.com/2012/04/18/tmux-copy-paste-with-mouse/

如果您已设置的以下选项:

鼠标选择窗格

鼠标选择窗口

,你会发现,你是不是能够选择文本的。

解决方法是使用shift键。

hold down the shift key and then left click and drag across the target text. you must also hold down the shift key and then middle click in order to paste the text. 
+4

与iterm,使用选项键而不是shift键。 [这里提到:http://awhan.wordpress.com/2012/04/18/tmux-copy-paste-with-mouse/] – gatoatigrado

+2

为MacOS,'XCLIP -o' =>'pbpaste','XCLIP - 我'=>'pbcopy'。 – Gingi

11

把这个在我的〜/ .tmux.conf文件为我工作:

bind y run-shell "reattach-to-user-namespace -l zsh -c 'tmux show-buffer | pbcopy'" 

我发现所有其他可能的解决方案进行复制某种空的内容到剪贴板OSX。

唯一的问题是,这似乎把一个回车在粘贴内容的末尾。

+2

这可行,但仍然需要您在做出选择后按PREFIX + y。有没有办法从OS X中的tmux会话中复制文本,只需在Linux终端中选择它即可? –

1

我今天使用netcat制作了一个非常简单的版本。

https://github.com/base698/tmux-copy-paste-mac-osx

这里是tmux.conf:

bind -t vi-copy 'v' begin-selection 
bind -t vi-copy 'y' copy-pipe 'nc localhost 5682' 
bind p run-shell 'nc localhost 5683; nc localhost 5683 | tmux load-buffer -' \; paste-buffer 

用鼠标在1.8

8

对于OS X,如果您使用的应用程序 “终端”。您可以关闭鼠标滚动,并使用通常的复制/粘贴功能(CMD + C/CMD + V):

set-option -g mouse-select-pane off 
set-option -g mouse-resize-pane off 
set-option -g mouse-select-window off 
set-window-option -g mode-mouse off 

,或者你可以用鼠标滚动,并使用 “Fn键” 选择文本:

set-window-option -g mode-mouse on 
+5

问'fn'关键技巧是救命!很多人建议使用'ALT',但它在最新的Mac OS x –

5

在OSX使用TMUX 2.2或更高版本添加以下到您的tmux.conf文件:

bind-key -t emacs-copy MouseDragEnd1Pane copy-pipe "pbcopy" 
bind-key -t vi-copy MouseDragEnd1Pane copy-pipe "pbcopy" 

对于TMUX 2.4版本,因为他们亲切决定改变命令语法,你应该使用:

bind-key -T copy-mode MouseDragEnd1Pane send -X copy-pipe-and-cancel "pbcopy" 

请注意,您可能还需要使用reattach-to-user-namespace pbcopy而不是普通的pbcopy

+0

上无法工作。在Ubuntu 16.04上,这对于tmux 2.1也不再是问题。我可以使用终端的默认复制粘贴方法。 –

+0

不知道为什么这是如此之低,这是正确的答案! – shawkinaw

32

如果使用iTerm2 3.x中,您可以通过启用Applications in terminal may access clipboard使复制/粘贴工作:

enter image description here

只需突出显示文本用鼠标将其复制到OS X剪贴板!没有必要按选项按照接受者的答案建议。

您也可以从OS X剪贴板粘贴到TMUX与平时Cmd的 + V

+0

它的作品!非常感谢! –

+3

迄今为止的最佳答案 –

+0

所有基于'reattach-to-user-namespace'的方法都不适用于我,因为我经常ssh进入linux机器。然而,这个解决方案效果很好!谢谢! – jdg

2

按下鼠标左键不放,在窗格中选择文本,仍然按住该按钮。然后按“y”,这将保存在剪贴板中的选择并从选择/复制模式中退出。

作品这里的iTerm 3.1.beta.5,TMUX 2.5和以下配置:

### copy & paste ------------------------------------------------------- 
# Use vim keybindings in copy mode 
setw -g mode-keys vi 
# Setup 'v' to begin selection as in Vim 
bind-key -T copy-mode-vi v send -X begin-selection 
bind-key -T copy-mode-vi y send -X copy-pipe-and-cancel "reattach-to-user-namespace pbcopy" 
# Update default binding of `Enter` to also use copy-pipe 
unbind -T copy-mode-vi Enter 
bind-key -T copy-mode-vi Enter send -X copy-pipe-and-cancel "reattach-to-user-namespace pbcopy" 
+0

+1最后,这是一个最新的解决方案。谢谢。 - 在没有事先解除绑定的情况下,重写Enter似乎很好。 – ThomasH

相关问题