为什么我的 PowerShell 认为它是一个 Cygwin 终端?

为什么我的 PowerShell 认为它是一个 Cygwin 终端?

最近我发现 colorama* 无法按预期工作。它不会将 ANSI 转义序列转换为 WinAPI 调用来更改 PoSh 控制台文本颜色。我注意到它在旧的 cmd 控制台中可以正常工作,但在 PowerShell 中却不行。

我还注意到,如果我使用 convert 参数调用 init 函数,colorama 会按预期工作:colorama.init(convert=True)。通常,colorama 会自动识别 Windows 控制台。

为此,colorama 测试名为的环境变量TERM。我的 PowerShell 返回cygwin

我如何找到Cygwin 安装设置了这个变量?

笔记:

  • TERM未在 cmd 控制台中设置
  • 我从未安装过独立的 Cygwin,但我安装的许多工具都带有自己的 Cygwin 文件夹/安装(> 6)
  • 卸载这些工具是不可能的

在当前的解决方法中,我在每个 PS 会话中删除 env:TERM。


  • colorama 是一个用 Python 编写的控制台包装器,用于在 Linux 和 Windows 上启用彩色文本输出。

相关内容