我想知道是否有任何方法可以检查我的程序是否可以使用颜色输出终端输出。
运行命令less并查看使用颜色输出的程序的输出,输出显示错误,例如
[ESC[0;32m0.052ESC[0m ESC[1;32m2,816.00 kbESC[0m]
谢谢
我的问题源于需要了解为什么我现在(经过多次试验)支持 256 种颜色的终端和tmux并tput colors告诉我只有 8种颜色。
让我们从头开始。
我正在使用Ubuntu盒子、Guake、tmux、Vim并且我喜欢主题Solarized。它们看起来非常糟糕,所以我决定启用 256 色支持并稍微玩一下。
让我们看看我的Terminal会发生什么。tput colors说有8种颜色。我个人将它们设置为紫色,在左侧,当然在右侧我们有 2 种不同深浅的蓝色。$TERM说xterm。(有颜色的ls我eval 这个在我的.bashrc。)

Vim看起来也不错,尽管我256在不支持256 色的环境中用标志调用它。
set t_Co=256
let g:solarized_termcolors=256
colorscheme solarized
Run Code Online (Sandbox Code Playgroud)
唯一抱怨色彩空间减少的人是tmux。调用tmux提供了“错误”的预期结果。

但是tmux用-2标志调用使一切正常,神奇地。

现在我唯一明白的是它-2相当于 …
浏览tmux、Vim和Solarized我可以发现很多关于 256 色和“用户体验”的抱怨。好吧,我遇到了相反的“问题”,即Vim只能在tmux 中与完整的Solarized主题配合使用。
我一直在调整和调整我的Ubuntu终端和Guake的配色方案,我几乎达到了使用tmux时达到的完美,这反过来意味着总是。我现在试图理解为什么会发生这种情况。
下面有两个终端,左边的一个只运行Vim(显示当前.vimrc),而另一个在tmux会话中运行Vim。正如您可以清楚地看到的,只有在tmux会话中,字体才为粗体,我认为这是正确的(或不正确?)。

为什么tmux允许使用粗体,而运行tmux的终端则不允许?这是一个错误还是一个功能?