鼠标选择后如何从tmux输出复制到系统剪贴板?

时间:2012-09-05 18:16:03

标签: macos shell command-line tmux

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

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

是否有机会更轻松地保存到系统剪贴板?密钥绑定或更好地在Shift版本之后自动执行。

我的tmux配置:https://gist.github.com/3641580

14 个答案:

答案 0 :(得分:175)

如果您使用的是iTerm2,您可以在Tmux会话中复制文本,按住 Option 键,同时拖动鼠标进行选择。

然后应该可以像往常一样用 Cmd + V 粘贴文本。 在这里找到它:http://web.archive.org/web/20131226003700/http://ootput.wordpress.com/2013/08/02/copy-and-paste-in-tmux-with-mouse/

答案 1 :(得分:48)

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

enter image description here

只需用鼠标突出显示文本即可将其复制到OS X剪贴板中!无需按照接受者答案中的建议按 Option

你也可以使用通常的 Cmd + V 从OS X剪贴板粘贴到tmux。

答案 2 :(得分:28)

这里有一个类似的问题: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.

答案 3 :(得分:17)

对于os x,如果你使用app&#34; Terminal&#34;。您可以关闭鼠标滚动并使用常用的复制/粘贴功能(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

或者您可以使用鼠标滚动并使用&#34; fn键&#34;:

选择文本
set-window-option -g mode-mouse on

答案 4 :(得分:12)

在使用tmux 2.2或更高版本的OSX上,将以下内容添加到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

答案 5 :(得分:11)

将它放在我的〜/ .tmux.conf文件中对我有用:

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

我发现的所有其他可能的解决方案都是将某些空内容复制到OSX剪贴板。

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

答案 6 :(得分:4)

按shift键然后鼠标点击!!检查此链接。 http://awhan.wordpress.com/2012/04/18/tmux-copy-paste-with-mouse/

答案 7 :(得分:4)

按住鼠标左键并按住它,在窗格中选择文本并仍然按住该按钮。然后按&#34; y&#34;,这样可以在剪贴板中保存选择并退出选择/复制模式。

在这里使用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"

答案 8 :(得分: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

中也使用鼠标

答案 9 :(得分:1)

在 macOS 终端 Tmux 上,从特定窗格复制:

  1. 按住选项(光标变为十字准线)[见下面的 *]
  2. 单击并拖动以选择文本
  3. 照常复制/粘贴,使用 CMD-C/V

*您可能需要使用 CMD-R 切换“允许鼠标报告”(请参阅​​终端,查看-...)。我发现我经常将其切换为在 tmux 窗格内用鼠标滚动或复制粘贴。


在我的 .tmux.conf 中,我包含 set -g mouse on

这是在 macOS Catalina,tmux 3.1c 上

答案 10 :(得分:0)

这是我用于-bash: /home/alowverus/.rvm/gems/ruby-2.5.1/bin:/home/alowverus/.rvm/gems/ruby-2.5.1@global/bin:/usr/share/rvm/rubies/ruby-2.5.1/bin:/usr/share/rvm/bin:/home/alowverus/.rvm/gems/ruby-2.5.1/bin:/home/alowverus/.rvm/gems/ruby-2.5.1@global/bin:/home/alowverus/.rvm/gems/ruby-2.5.1/bin:/home/alowverus/.rvm/gems/ruby-2.5.1@global/bin:/home/alowverus/.rvm/gems/ruby-2.5.1/bin:/home/alowverus/.rvm/gems/ruby-2.5.1@global/bin:/home/alowverus/.rvm/gems/ruby-2.5.1/bin:/home/alowverus/.rvm/gems/ruby-2.5.1@global/bin:/home/alowverus/bin:/home/alowverus/.local/bin:/home/alowverus/.rvm/gems/ruby-2.5.1/bin:/home/alowverus/.rvm/gems/ruby-2.5.1@global/bin:/home/alowverus/bin:/home/alowverus/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin: No such file or directory 2.8版,macOS Mojave 10.14.1和Terminal.app的解决方案。

释放鼠标按钮后,这将在复制到系统剪贴板(以及tmux缓冲区)时删除选择:

tmux

答案 11 :(得分:0)

CMD的{​​{1}}窗口中选择C + FN的文本后,我就能用mouse drag with left button down + tmux解决此问题} macOS High Sierra的应用。

答案 12 :(得分:0)

一个强大的解决方案,可与mosh + tmux + vim +嵌套会话的任意组合一起使用

花了很多天解决这个问题之后,到目前为止,我发现的最可靠的解决方案是Suraj N. Kurapati的posted solution。该解决方案可在本地(和不带有)tmux v3.2和/或vim上运行,以及在远程(带有或不带有) tmux 和/或 vim 上运行,同时使用两个模式键和简单的鼠标选择。

如果与Mike Gulick的pull request(目前开放)结合使用,那么所有这些组合也可以与 mosh 一起使用。

在Mike的解决方案被合并到mosh中之前,您可以使用以下方法进行更改并在本地进行构建:

Ubuntu:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key C99B11DEB97541F0 \
&& sudo apt-add-repository https://cli.github.com/packages \
&& sudo apt update \
&& sudo apt install -y gh autoconf automake perl protobuf-compiler libprotobuf-dev libncurses-dev zlib1g-dev libutempter-dev libssl-dev pkg-config \
&& mkdir -p ~/tmp/mosh \
&& git clone https://github.com/mobile-shell/mosh ~/tmp/mosh \
&& cd ~/tmp/mosh \
&& gh pr checkout 1104 \
&& ./autogen.sh \
&& ./configure \
&& make \
&& sudo make install

macOS:

我认为您需要首先安装Apple的Xcode / Developer命令行工具(现在可以通过简单地运行gcc并退出来完成IIRC,然后运行:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" \
&& brew install gh autoconf automake
&& mkdir -p ~/tmp/mosh \
&& git clone https://github.com/mobile-shell/mosh ~/tmp/mosh \
&& cd ~/tmp/mosh \
&& gh pr checkout 1104 \
&& ./autogen.sh \
&& ./configure \
&& make \
&& sudo make install

通过这些更新,剪贴板的圣杯终于得以实现!

但是,这是一个非常新的信息,因此我的这个职位非常不稳定。因此:

如果有以下情况,请修改我的帖子:

  1. 我缺少依赖项等,或者
  2. 不再需要执行gh pr checkout 1104的Mike更改,因为它已合并到mosh中,或者
  3. 由于合并的更改已推送到brew / apt / etc软件包管理器,因此不再需要从源代码构建。

答案 13 :(得分:0)

对于那些正在 tmux 中寻找选择如何在 mac 中工作的人:使用“fn”键来选择、复制和粘贴。