我使用 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 代码。它不会显示在屏幕上,而只是对终端的“指令”。您可能需要在问题中提供有关用例的更多信息,例如它是什么类型的应用程序、您对它有什么控制权等。
–
|
|