以下配置在tmux 2.4以上版本通过。
多个pane的情况下,如果是按住shift用鼠标左键拖动,会横跨多个pane,从而copy到不需要的文字。
经过多次尝试,最后试出了在本地shell和远程ssh都可以copy单独一个pane中的文字:
#########################################################
# In WSL or cygwin, let tmux pipe copy result to clip.exe
# bind-key -T copy-mode Enter send-keys -X copy-pipe-and-cancel clip.exe \; run-shell "tmux show-buffer | clip"
#########################################################
# In MobaXterm pipe copy result to xclip
# STEP 1. sudo yum install xorg-x11-xauth
# STEP 2. restart session and make sure XServer is enabled
#########################################################
#bind-key -T copy-mode Enter send-keys -X copy-pipe-and-cancel xclip
#########################################################
如果是WSL或cygwin,就是让tmux将文字输出到clip.exe中,这是windows的剪贴板小程序。
如果是ssh而且远程的机器没有桌面环境,比较复杂些,废了我不少时间。需要用到xserver,所以最好用MobaXterm,自带xserver。
然后在远程的机器上安装xorg-x11-xauth,确保重新连接时X11后面是勾勾。

这时候tmux会将内容发送给xclip,xclip再通过X11发给MobaXterm。
然后就是在pane中手动鼠标,出现黄色选中区域时按Enter,文字就到系统剪贴板里面了。

本文介绍如何在tmux2.4及以上版本中实现跨平台的文本复制,包括在WSL、cygwin和远程ssh环境下,使用clip.exe或xclip等工具,通过特定的配置使tmux能够精准地复制指定pane中的文字。
762

被折叠的 条评论
为什么被折叠?



