我已删除并添加了几次以下行到~/.tmux.conf
:
set -ga terminal-overrides ',xterm*:smcup@:rmcup@'
根据提供者提供的内容如下:
欺骗多路复用器认为终端没有“备用屏幕”模式(例如pico,mutt等使用的模式)。这是通过为会话设置termcap命令来完成的。
命令的'xterm *'部分应设置为终结模拟器声明的任何内容。
最终结果是溢出终止于终端的回滚缓冲区而不是消失。 当然,由于这是一个静态缓冲区,当你在屏幕或tmux窗口之间切换时,事情会变得混乱,但是这很方便快速查看ls命令的输出等等。
我不太了解粗体部分(强调添加),但猜测这是我所看到的来源。退出tmux时会导致一些奇怪的unicode溢出。
作为纯文本粘贴此文字不会显示,但符号[001B]112
会显示在通常的[exited]
旁边:
]112[exited]
(FWIW我认为它已贴在该行,但未显示)
我跟着this advice(“使用带有tmux 的终端滚动条”),虽然它确实有效,但在退出时看到这个只是丑陋/烦人。任何人都可以建议如何修复或避免输出消息?
答案 0 :(得分:2)
另外,我会得到不需要的“消息”是一些硬编码的应用程序(或脚本),它有助于重置xterm 动态文本光标颜色。请参阅XTerm Control Sequences的说明中的Operating System Controls:
The dynamic colors can also be reset to their default
(resource) values:
...
Ps = 1 1 2 -> Reset text cursor color.
所以......某处有一些脚本相当于
echo -n -e '\e]112\a
结果可能最大程度上取决于您使用的特定终端仿真器。屏幕和tmux都会过滤掉开发人员不关心实现的转义序列,并通过终端“应该”处理的转义序列。
答案 1 :(得分:2)
看看你提供的句子:“命令的'xterm *'部分应该设置为你的终端模拟器被声明为的任何内容。”
就我而言,$ TERM的值为xterm-256color
,而〜/ .tmux.conf中的对应行如下所示:
set -g terminal-overrides "xterm-color256:smcup@:rmcup@"