复制到 Windows 终端/WSL 上的 RHEL 远程服务器中的剪贴板?

复制到 Windows 终端/WSL 上的 RHEL 远程服务器中的剪贴板?

不确定我的工作流程是否奇怪/不寻常,但我有一台 Windows 机器,我使用 Windows 终端。我通常使用 Windows 终端上的 WSL 通过 ssh 进入远程服务器。远程服务器正在运行 RHEL。

现在,我在尝试使用 复制到远程服务器上的剪贴板时遇到问题xclipxclip总是返回Error: Can't open display。即使我手动设置export DISPLAY=:0它仍然会给我同样的错误。我也设置ForwardX11 yes了,~/.ssh/config但这也没有帮助。

我需要这个的原因是,我最终想在远程服务器上启用 tmux 中的选择和复制功能。它.tmux.conf看起来会像这样:

set-option -s set-clipboard off
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel 'xclip'
bind-key -T copy-mode MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel 'xclip'

在 WSL 上,我只需将其替换'xclip'clip.exe,它就可以工作。但由于这是在 Windows 终端中运行的远程服务器,因此并非所有 Windows 可执行文件都可用。

有人知道我该如何启用此功能吗?提前致谢!

答案1

好的,我明白了。其实很简单 - 一定要阅读文档!

因此,xclip依赖于 X 服务器正在运行,而我的远程 RHEL 服务器并非如此。检查 X 是否正在运行的一个简单方法是echo $DISPLAY查看它是否已设置。但据我所知,这并不总是有效。另一种检查方法是ps -e | grep X。无论哪种方式,对于我的情况,X 都没有运行,因此xclip不起作用。

但,tmux 文档确实讨论了剪贴板的内容。只需按照文档操作,我就能修复它。需要注意的重要一点是,您应该使用set-clipboard选项/方法,不是因为Piping to an external tool like xselX 服务器没有运行。

总结一下,请阅读 tmux 文档这里并选择OSC 52 and the set-clipboard option。以下是我的相关部分.tmux.conf

set -as terminal-features ',xterm-256color:clipboard'
set-option -s set-clipboard on

但是,在 Vim 中,将内容复制到剪贴板仍然不起作用,因为默认情况下,Vim 会尝试使用 将其复制到剪贴板xclip。但目前我的问题已经得到很好的解决。

编辑:

最终结果是,在我的远程服务器中的 tmux 中,我只需使用鼠标选择一些文本,例如按下鼠标并拖动以选择几个单词,然后释放鼠标,我的选择就会自动复制。然后我可以按 Ctrl + Shift + V 将其粘贴到其他地方。选择文本时无需按住 Shift。

相关内容