我使用 Windows 终端从 Windows 客户端连接到 Linux 服务器。我希望运行在 Linux 服务器中的程序将一段文本放入 Windows 客户端的剪贴板中。这可能吗?

编辑:我需要在不将文本写入控制台的情况下执行此操作。


最佳答案
1

是的,使用ESC ] 52)序列。

  • 命令:\e]52
  • 参数1:(c副本)
  • 参数2:Base64编码的文本
  • 终结者:\e\\要么\a
text="Hello world!"
b64=$(printf '%s' "$text" | base64 -w0)
printf '\e]52;c;%s\a' "$b64"

tmux 需要将其作为另一个“直通”序列的前缀\ePtmux;

tmux setw -g allow-passthrough on
printf '\ePtmux;\e]52;c;%s\e\\' "$b64"

3

  • 我需要在没有将文本写入控制台的情况下完成此操作。


    – 

  • 1
    不幸的是,控制台实际上是您与客户端的唯一接口。一切都是通过向控制台写入隐藏序列来完成的。


    – 


  • 1
    重复一下关键词,隐藏– @RamRachum – 在 Linux 端运行的程序会生成 OSC 代码。它不会显示在屏幕上,而只是对终端的“指令”。您可能需要在问题中提供有关用例的更多信息,例如它是什么类型的应用程序、您对它有什么控制权等。


    –