终端不打印颜色

终端不打印颜色

执行脚本时,我的 Antergos 终端不显示任何颜色。我有一个全新的安装,没有任何调整。我有 zsh 和 oh-my-zsh,但配置是默认的。 在此输入图像描述

你可以看到所有的输出都是白色的,它应该是彩色的: 在此输入图像描述

当我安装程序时会发生这种情况,空格是文本: 在此输入图像描述

可选文本:

➜  ~  yaourt gnome-terminal 
1 extra/gnome-terminal 3.18.2-1 (gnome) [installed]
    The GNOME Terminal Emulator
2 aur/gnome-terminal-dark-variant 3.18.2-1 (10)
    The GNOME Terminal Emulator - Patched to bring back 'Use dark theme variant' option in preferences
3 aur/gnome-terminal-fedora 3.18.2-1 (31)
    The GNOME Terminal Emulator with Fedora patches
4 aur/gnome-terminal-git 3.15.91.5228.e5f7763-1 (2)
    The GNOME Terminal Emulator. Git Version
5 aur/neovim-gnome-terminal-wrapper 2-3 (0)
    A wrapper for running neovim in a separate instance of gnome-terminal
==> Introduzca el número de los paquetes desea instalar (ejemplos: 1 2 3 ó 1-3)
==> ---------------------------------------------------------------------------
==> 

我尝试自定义配置文件,但没有成功,我在笔记本电脑上尝试使用相同的 ISO 进行全新安装,没有出现任何问题,但我不想在这台计算机上重新安装 Antergos。

tput colors输出256

答案1

该问题似乎已得到解决,但原因是对TERM环境变量等于 的硬编码检查xterm。如果(如问题中所示)您有xterm-256color,那么检查将失败。

您可以看到差异之一,它是解决此问题的更改的一部分git 存储库,在这块删除的行中:

- /**
- * 返回我们是否是一个终端并具有颜色功能
- *
- * @return 布尔值
- */
- 私有函数 isColorTerminal()
- {
- if (function_exists('posix_isatty')) {
- $结果 = posix_isatty(STDOUT);
- } 别的 {
- // 查看 STDOUT 是否为字符设备 (S_IFCHR)
- $stat = fstat(STDOUT);
- $结果 = ($stat['模式'] & 0170000) === 0020000;
- }
-
- if (已定义('PHP_WINDOWS_VERSION_BUILD') && $结果) {
- $结果 = false !== getenv('ANSICON')
- || 'ON' === getenv('ConEmuANSI')
- || 'xterm' === getenv('TERM');
- }
-
- 返回$结果;
- }
-

相关内容