回答

回答

我必须做什么才能使双下划线的转义序列\E[4:2m与 tmux 一起工作?

它在我的终端(mintty)中 tmux 之外运行,并且我成功调整了终端的 terminfo 以适应terminfo 扩展tmux 与哪个兼容,可以在 tmux 中启用真彩色和上划线。

但是,我无法使扩展下划线功能工作(“Smulx”代码)。这是我的 terminfo:

# Compile and add to database using 'tic -x <filename>'                      
#                                                                            
stanterm-256color|xterm with non-standard terminfo extensions,               
  use=xterm-256color,                                                        
  Tc,                                                                        
  Smol=\E[53m, Rmol=\E[55m,                                                  
# These underline extensions don't work in Tmux :(                           
# Smulx=\E[< WHAT GOES HERE? >m,  
# Smul2=\E[4:2m, does not work within tmux                                           

我的.tmux.conf只包含最小的

set -g default-terminal "tmux-256color"

我正在通过 byobu 运行 tmux 3.0(tmux 是从源代码构建的,因为 overline 功能非常新)。有什么想法吗?

谢谢


回答

选项 1:调整 tmux 配置

增加set -as terminal-overrides ',*:Smulx=\E[4::%p1%dm'你的.tmux.conf收益

# .tmux.config
set -g default-terminal "tmux-256color"
set -as terminal-overrides ',*:Smulx=\E[4::%p1%dm'

# ... rest of your configuration

选项 2:调整 terminfo

将相应的 termcap 字符串附加Smulx=\E[4:%p1%dm,到您的 terminfo来源文件并使用 进行编译tic -x <termfile>。请注意,与上一个选项相反,该Smulx条目需要一个冒号。

我选择了后者。我的 terminfo 源文件如下所示:

# Compile and add to database using 'tic -x <filename>'
#
stanterm-256color|xterm with non-standard terminfo extensions,
  use=xterm-256color,
  Tc, 
  Smol=\E[53m, Rmol=\E[55m, 
  Smulx=\E[4:%p1%dm,

答案1

设置 -as 终端覆盖',*:Smulx=\E[4::%p1%dm'

相关内容