![为什么我的 PowerShell 认为它是一个 Cygwin 终端?](https://linux22.com/image/1473700/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E7%9A%84%20PowerShell%20%E8%AE%A4%E4%B8%BA%E5%AE%83%E6%98%AF%E4%B8%80%E4%B8%AA%20Cygwin%20%E7%BB%88%E7%AB%AF%EF%BC%9F.png)
最近我发现 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 上启用彩色文本输出。