tmux、mutt 和终端颜色的问题

lar*_*sks 9 linux terminal mutt tmux

如果我从这样mutttmux会话开始:

$ tmux new-session -s mutt mutt
Run Code Online (Sandbox Code Playgroud)

穆特抱怨:

Error in /home/lars/.mutt/colors, line 20: 230: color not supported by term
Error in /home/lars/.mutt/colors, line 26: 244: color not supported by term
Run Code Online (Sandbox Code Playgroud)

但是如果我这样开始tmux,没有命令:

$ tmux new-session -s mutt
Run Code Online (Sandbox Code Playgroud)

然后在tmux会话开始mutt

$ exec mutt
Run Code Online (Sandbox Code Playgroud)

它可以毫无问题地工作。在这两种情况下,会话TERM内部tmux都设置为screen-256color。我没有看到这两种情况之间有任何功能差异,所以我很困惑。就其价值而言,-2tmux 选项(“强制 tmux 假设终端支持 256 色”)似乎对此行为没有任何影响。

有没有人见过这种行为?你知道是什么原因造成的,以及如何解决吗?

gla*_*len 0

tmux new-session -s mutt随后的echo $TERM结果为xterm-256color

然而,

tmux new-session -s mutt 'echo $TERM && sleep 10'
Run Code Online (Sandbox Code Playgroud)

产量screen. 要解决这个问题,请尝试:

tmux new-session -s mutt 'TERM=xterm-256color; echo $TERM && sleep 10'
Run Code Online (Sandbox Code Playgroud)

查看正确的设置,并使 mutt 工作:

tmux new-session -s mutt 'TERM=xterm-256color mutt'
Run Code Online (Sandbox Code Playgroud)