2012-09-05 64 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

相關問題