天天看点

tmux中如何完整copy单独一个pane中的文字到系统剪贴板(本地shell和远程ssh)

以下配置在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中如何完整copy单独一个pane中的文字到系统剪贴板(本地shell和远程ssh)

这时候tmux会将内容发送给xclip,xclip再通过X11发给MobaXterm。

然后就是在pane中手动鼠标,出现黄色选中区域时按Enter,文字就到系统剪贴板里面了。

tmux中如何完整copy单独一个pane中的文字到系统剪贴板(本地shell和远程ssh)

继续阅读