在替代屏幕的情况下退出tmux时出现Unicode字符错误

在替代屏幕的情况下退出tmux时出现Unicode字符错误,tmux,xterm,Tmux,Xterm,我已经删除并添加了几次以下行到~/.tmux.conf: set -ga terminal-overrides ',xterm*:smcup@:rmcup@' 根据提供该服务的人员所述,该服务可执行以下操作: 使多路复用器误以为终端没有“交替屏幕”模式(如pico、mutt等使用的模式)。这是通过为会话设置termcap命令来实现的 命令的“xterm*”部分应设置为终端仿真器声明为的值 最终的结果是溢出在终端的回滚缓冲区中结束,而不是消失当然,由于这是一个静态缓冲区,当您在屏幕或tmux窗口

我已经删除并添加了几次以下行到
~/.tmux.conf

set -ga terminal-overrides ',xterm*:smcup@:rmcup@'
根据提供该服务的人员所述,该服务可执行以下操作:

使多路复用器误以为终端没有“交替屏幕”模式(如pico、mutt等使用的模式)。这是通过为会话设置termcap命令来实现的

命令的“xterm*”部分应设置为终端仿真器声明为的值

最终的结果是溢出在终端的回滚缓冲区中结束,而不是消失当然,由于这是一个静态缓冲区,当您在屏幕或tmux窗口之间切换时,事情会变得一团糟,但这对于快速弹出以查看ls命令或类似命令的输出非常方便

我不太明白粗体部分(加了强调),但我想这就是我所看到的来源。它在退出tmux时导致了某种奇怪的unicode溢出

粘贴为纯文本此文本不会显示,但符号
[001B]112
与通常的
[exited]
一起出现:

]112[exited]
(FWIW我认为它已粘贴在该行中,但未显示)


我遵循了(“将终端滚动条与tmux一起使用”),虽然它确实可以工作,但在退出时看到这一点真是难看/恼人。有人能建议如何修复或避免输出消息吗?

我会立即得到不需要的“消息”是一些硬编码的应用程序(或脚本),它有助于重置xterm动态文本光标颜色。请参见以下内容的说明:

所以。。。在某个地方有一些脚本在做与

echo -n -e '\e]112\a

结果可能主要取决于您使用的特定终端模拟器。screen和tmux都会过滤掉开发人员不想实现的转义序列,并传递给终端“应该”处理的转义序列。

请看一看您提供的句子:“命令的'xterm*'部分应该设置为终端仿真器声明为的任何值。

在我的例子中,$TERM的值为
xterm-256color
,并且~/.tmux.conf中的对应行如下所示:

set -g terminal-overrides "xterm-color256:smcup@:rmcup@"
set -g terminal-overrides "xterm-color256:smcup@:rmcup@"