MacOS 上 Terminal.app 中的 Tmux 和变暗颜色

Atc*_*old 6 osx colors terminal tmux macintosh

问题

在我的 Mac (10.11) 上,Tmux无法dim正确显示-ed 颜色,这会引起烦恼。

在下图中,提交作者的姓名应该用dim white. 这在Terminal.app 中工作正常,但不在Tmux 中

git lg1 比较

有没有人知道如何调试这个?
我相信它与$TERM变量有关,但我不知道从哪里开始。

Terminal.app $TERM中设置为xterm-256color.
Tmux $TERM中设置为screen-256color.

在我的.tmux.conf我有set -g default-terminal "screen-256color"xterm-256color,在Tmux 中,不知何故与Vim的背景颜色冲突,但不会改变dim行为。

更多信息

Tmux的 GitHub 存储库上打开了一个问题;已经提供了答案,但我并不完全理解。

看起来Terminal.app没有dim指令,尽管它处理得很好。
Tmux无法获取dim信息,因为它不存在,因此它不能正确显示字体。

现在我不确定为什么一个有效而另一个无效。

Atc*_*old 0

轻松修复

将以下代码添加到~/.tmux.conf.

set -sa terminal-overrides ",*:dim=\\E[2m"
Run Code Online (Sandbox Code Playgroud)

暂定解释

Application.app似乎没有该dim指令(参见编号 24)。

Terminal 0: xterm-256color [references=1, flags=0x1]:
   1: acsc: (string) ``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~
   0: AX: (flag) true
   2: bel: (string) \007
...
  23: dch1: (string) \033[P
  24: dim: [missing]
  25: dl: (string) \033[%p1%dM
Run Code Online (Sandbox Code Playgroud)

这是在Tmuxtmux showmsgs -T内运行的命令的输出。

另一方面,Terminal.app无论如何都会“发送” dim(不知道如何为什么),因为它正在工作,如上图所示。

添加缺少的dim指令(神奇地)解决了问题。