为什么 tmux 和 oh-my-zsh 都会破坏 WSL 下 git log 的颜色输出?

为什么 tmux 和 oh-my-zsh 都会破坏 WSL 下 git log 的颜色输出?

我最近决定尝试一下 WSL(Ubuntu 18.04),并像往常一样安装了 zsh+oh-my-zsh。很快我发现颜色输出git log坏了:

  • Git 日志输出,未着色

Git 日志输出,未着色

颜色代码似乎是正确的,并且将此输出传输到 cat 确实会显示正确的颜色。其他命令(包括一些 git 命令,例如)可以git status正确显示颜色。

我最终发现,在 bash 下不会发生这种情况。但是,打开一个运行 bash 的新终端,然后启动 zsh,然后启动 bash,会导致最内层的 bash 实例继承 zsh 的损坏行为。

  • bash->zsh->bash

bash->zsh->bash

我还发现此行为是由 oh-my-zsh 引起的。使用其 vanilla 配置,zsh 可以正确显示颜色。

不幸的是,这个问题并不局限于 oh-my-zsh。git log无论使用哪个 shell 以及从哪个 shell 启动 tmux,我在 tmux 中都会遇到完全相同的行为。

我主要使用ysoh-my-zsh 主题,但我尝试了几个,这些问题似乎并不局限于任何一个。

TERMxterm-256color在 zsh 和 bash 以及tmux 中设置为screen

如果有任何其他有帮助的信息,请告诉我,提前谢谢您。

答案1

事实证明,这与 WSL 无关。我错误地配置了LESS=-XF,而我本应该设置LESS=-XFR。由于-F,我甚至没有意识到less正在被 调用git log

相关内容