我遇到的问题是 tmux 中无法正确生成颜色和字体。当命令在 tmux 外部和内部运行时,相同的输出看起来不同。
外部 tmux:
tmux 内部:
按照建议这里,我有set -g default-terminal "screen-256color"
在我的.tmux.conf
。tput
和的输出$TERM
也是正确的。
$ tput colors
256
$ echo $TERM
screen-256color
我在这里缺少什么?
答案1
在 tmux 内部,在屏幕截图上生成输出的程序“认为”终端不支持斜体模式。该程序不会尝试使用斜体,而是选择操纵背景颜色。
这是因为screen-256color
您指定的显然不支持斜体模式。有一种方法可以证实这一点。在我的 Kubuntu 中执行以下命令
TERM=screen-256color infocmp -1 | grep -E 'ritm|sitm'
产生空输出(不支持),而
TERM=tmux-256color infocmp -1 | grep -E 'ritm|sitm'
为我们提供进入 ( sitm
) 或退出 ( ritm
) 斜体模式的转义序列(请参阅man 5 terminfo
)。
任何查询 terminfo 数据库的程序都会发现它screen-256color
不支持斜体模式。为了让程序相信您的终端确实支持它,您需要选择支持的东西。
希望您的 terminfo 数据库包含tmux-256color
.这对您来说是正确的值$TERM
。解决方案:使用tmux-256color
而不是screen-256color
.