如何在没有X的服务器上同步终端应用程序的剪贴板?

如何在没有X的服务器上同步终端应用程序的剪贴板?

在带有 X 服务器的机器上,我使用selection剪贴板在 GUI 和终端程序之间同步复制/粘贴。现在我有一个没有 X 的服务器,我想在终端应用程序之间同步复制/粘贴,例如zsh和。稍后,我希望进一步将该剪贴板与我用来通过 SSH 连接到 Linux 服务器的 Mac 的系统剪贴板同步。vimtmux

这样的设置可能吗?具体来说,

  • Linux 的共享剪贴板是否可以在不运行 X11 的情况下跨终端应用程序同步复制/粘贴?

  • 有类似的工具xselxclip

  • 更好的是,是否有像这样的工具可以在运行和不运行 X 服务器的情况下工作,允许我在这两种情况下使用相同的配置/点文件?

  • 最后,我承认这是一个独立的问题,这个剪贴板如何与 SSH 客户端的剪贴板同步?

答案1

终端应用程序没有通用的剪贴板。 tmux、zsh 和 vim 都有自己的剪贴板。

tmux 有一种机制,可以使用转义序列(选项)将复制的文本发送到外部终端set-clipboard,并读取剪贴板 ( refresh-client -l)。只有 X 终端支持此功能,并非所有终端都支持。

tmux 还支持相同的转义序列 (OSC 52),允许 tmux 内的应用程序读取最新的粘贴缓冲区(如果set-clipboard设置为on)。然而,据我所知,很少有应用程序使用它。

tmux 还允许您使用命令将粘贴缓冲区保存到文件或标准输出save-buffer,并使用命令加载它们load-buffer。这可能比 OSC 52 更容易使用。

我希望可以为 zsh 和 vim 编写脚本来使用这些功能之一或其他功能来设置和检索其剪贴板。

所以是的,你可以通过运行 tmux 内的所有内容来将一些东西组合在一起,使用 tmux 保存剪贴板并编写一些脚本来从 vim、zsh 等获取和设置它,但我认为你需要自己做,有没有现有的解决方案。

相关内容