现在要复制到系统剪贴板,我必须通过 tmux 窗口中的鼠标文本用Shift
键进行选择。然后我必须运行这个命令:
tmux save-buffer - | reattach-to-user-namespace pbcopy
是否有机会更轻松地保存到系统剪贴板?键绑定或更好地在 Shift 释放后自动执行此操作。
我的 tmux 配置:https ://gist.github.com/3641580
现在要复制到系统剪贴板,我必须通过 tmux 窗口中的鼠标文本用Shift
键进行选择。然后我必须运行这个命令:
tmux save-buffer - | reattach-to-user-namespace pbcopy
是否有机会更轻松地保存到系统剪贴板?键绑定或更好地在 Shift 释放后自动执行此操作。
我的 tmux 配置:https ://gist.github.com/3641580
如果您使用的是 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/
对于 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
这里回答了一个类似的问题: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.
在使用 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
代替 plain pbcopy
。
把它放在我的 ~/.tmux.conf 文件中对我有用:
bind y run-shell "reattach-to-user-namespace -l zsh -c 'tmux show-buffer | pbcopy'"
我发现的所有其他潜在解决方案都是将某种空内容复制到 OSX 剪贴板。
唯一的问题是,这似乎在粘贴内容的末尾放置了一个回车符。
按shift键然后鼠标点击!!检查此链接。 http://awhan.wordpress.com/2012/04/18/tmux-copy-paste-with-mouse/
按住鼠标左键,在窗格中选择文本并按住按钮。然后按“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"
在macOS High Sierra 的应用程序中从窗口中选择带有CMD
+C
的文本后,我能够使用 + 解决这个问题FN
。mouse drag with left button down
tmux
Terminal
这是我用于tmux
2.8 版、macOS Mojave 10.14.1 和 Terminal.app 的解决方案。
释放鼠标按钮后,这会在复制到系统剪贴板(以及tmux
缓冲区)时删除选择:
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "pbcopy"
在花了很多天解决这个问题之后,到目前为止,我发现的最强大的解决方案是 Suraj N. Kurapati发布的解决方案。该解决方案在本地使用(和不使用) tmux v3.2 和/或 vim ,以及使用(和不使用)远程使用tmux和/或vim,使用复制模式键和简单的鼠标选择。
如果结合 Mike Gulick 的(当前开放的)拉取请求,所有这些组合也适用于mosh。
在 Mike 的解决方案被合并到 mosh 之前,您可以使用以下方法提取他的更改并在本地构建:
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
我认为您需要先安装 Apple 的 Xcode/Developer 命令行工具(IIRC 现在可以通过简单的运行gcc
和退出来完成),然后运行:
/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
但是,这是非常新的信息,因此我的这篇文章相当不稳定。所以:
如果出现以下情况,请修改我的帖子:
gh pr checkout 1104
不再需要执行Mike 的更改,因为它已合并到 mosh 中,或者我今天使用 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 中也可以与鼠标一起使用
在 macOS 终端 Tmux 上,从特定窗格复制:
*您可能需要使用 CMD-R 切换“允许鼠标报告”(请参阅终端、视图-...)。我发现我经常将其切换为在 tmux 窗格内使用鼠标滚动或复制粘贴。
在我的.tmux.conf
,我包括set -g mouse on
这是在 macOS Catalina 上,tmux 3.1c
monterey macosx 终端 2.21,默认设置通过 ssh 连接到一台运行 tmux 2.6 的机器,有几个窗格,tmux 配置就这么简单:
set -g mouse on
要复制 - 按住 Fn按钮并使用鼠标选择您需要的内容,然后按⌘ Command + C,等等,文本就在您的 mac 的缓冲区中。
对于那些在 tmux 现在在 mac 中寻找选择如何工作的人:使用“fn”键选择、复制和粘贴。