在 Fedora 39 中,使用 i3 + urxvt + tmux,每次我
tmux new-session
或 tmux attach-session
时,都会将以下字符打印到终端 shell,可能带有损坏或误解的转义序列:
user@hostname:~ $ /fe00/fd00^[^[]11;rgb:0100/0200/0300^[^[user@hostname:~ $
每次我使用
tmux attach-session
重新连接到此会话时,该模式都会重复(无需在终端上输入任何内容):
user@hostname:~ $ /fe00/fd00^[^[]11;rgb:0100/0200/0300^[^[]10;rgb:ff00/fe00/fd00^[^[]11;rgb:0100/0200/0300^[^[]10;rgb:ff00/fe00/fd00^[^[]11;rgb:0100/0200/0300^[^[]10;rgb:ff00/fe00/fd00^[^[]11;rgb:0100/0200/0300^[^C
我在升级到 Fedora 39 后第一次遇到这个错误。这似乎是 tmux 和 urxvt 之间的一个错误,我在 i3 中运行它。我的主要目标是弄清楚我需要使用什么解决方法以及我应该在哪里针对此行为提交错误。我似乎无法消除根本原因,除了完全从
urxvt
切换到另一个终端模拟器(这对我来说,这是 Fedora rxvt-unicode
包中的一个错误,但我认为我能够通过更改一些 rxvt
/ X11 配置来证明这一点)。
我的
~/.Xresources
包括(这是 4 位颜色代码的来源):
[...]
*foreground: #fffefd
*background: #010203
[...]
我尝试删除我的
~/.tmux.conf
、~/.Xresources
、~/.bashrc
(包括PS1
和COMMAND_PROMPT
)和~/.bash_profile
的所有其他方面,但无济于事。
删除我的
~/.Xresources
并不能解决问题。 root
,通过 urxvt 会话中的 su - su root
,就像我正常的 user
一样,在 root
中没有任何特定于用户(即 /root/
特定)的 shell、tmux 或 X11 配置时遇到相同的问题。
我还尝试将
set -x
添加到 /etc/profile
以确定在系统级别的哪个位置发生这种情况。它似乎是在 /etc/profile
执行时发生的,但不是任何in
/etc/profile
的结果(它是异步的)。例如,如果我在
set -e; sleep 1
的开头添加
/etc/profile
,则它会在睡眠期间出现在跟踪中:
+ sleep 1
^[]10;rgb:ff00/fe00/fd00^[^[]11;rgb:0100/0200/0300^[+ '[' -x /usr/bin/id ']'
+ '[' -z 1000 ']'
++ /usr/bin/id -un
+ USER=user
TMux 与几个终端仿真器配合使用,具体取决于我当时使用的环境。
也就是说,我遇到了一些与上述问题非常相似的配置问题。在VSCode 及其集成终端下启动会话,有以下转储:
[tijko@tijko ~] 10;rgb:cccc/cccc/cccc11;rgb:1818/1818/1818
为了准确展示它的样子,我附上了这张图片:现在进入我的
.tmux.conf
我发现
escape-time
设置 tmux 在转义后等待的时间(以毫秒为单位) 输入以确定它是否是功能或元键序列的一部分。 默认值为 500 毫秒。我的默认值设置为 10 毫秒,通过增加此值,我不再有“转义序列”转储。
.tmux.conf
:
23 │ setw -g xterm-keys on
24 │ set -s escape-time 200 # faster command sequences
25 │ set -sg repeat-time 600 # increase repeat timeout
26 │ set -s focus-events on
您可以看到我已将新的 escape-time
设置为
200
毫秒,它解决了问题。