为什么 Windows 11 终端会将转义序列推送到 Tmux?

为什么 Windows 11 终端会将转义序列推送到 Tmux?

Ssh 的 RemoteCommand 功能可用于自动创建/附加 tmux 会话,像这样在 Windows 中,我的会话间歇性地看到转义序列 ^0;10;1c或 ^ [[>1;1c,在我的终端中显示如下:

在此处输入图片描述

这种行为似乎仅限于 Windows 11,包括终端和控制台主机应用程序。在 Windows 10 上,任何 cmd.exe 变体似乎都不会发生这种情况。我目前正在通过在传统模式下运行 W11 控制台主机来解决这个问题,但我更愿意使用 Windows 终端。

我怎样才能将这些转义序列排除在我的 tmux 会话之外?

以下是包含错误假设的原始问题文本:

(根据下面@user1686 的回复,我现在认为这是一个错误的假设)。

Windows 版 OpenSSH(包括当前测试版 9.2p1)似乎会推送一些看起来像转义序列的额外字符。在给定的命令窗口中,第一个 ssh 会话插入了垃圾,因此我的新 tmux 会话看起来如下图所示。cmd、powershell 和 cygwin 终端也是如此。这确实不是如果远程命令不存在或为原始bash命令,则会发生这种情况。奇怪的是,它也不会发生在第二、第四等 ssh 命令上。

答案1

这是终端的回复ESC [ c远程程序发出的“请求终端属性”。

\033[c“请求终端属性”是 tmux 输出到终端的几个信息请求之一,期望收到与来自终端的输入类似的响应(通常它们会被 tmux 不可见地使用,就像特殊键序列一样)。

我无法使用 tmux 3.3a 或 3.2a 重现此问题。

奇怪的是,它也没有发生在第二个、第四个等 ssh 命令上。

您的远程命令专门编写为第一次启动新的 tmux 会话,但在第二次、第四次等连接时附加到现有会话。它们会表现出不同的行为,这是很自然的。

相关内容