我创建了一个 powershell 配置文件,它修改提示以添加一些颜色(取决于诸如 git branch 之类的东西)
这看起来不错,直到我执行了一个控制台程序,比如 git,它也输出彩色文本。在此之后,Powershell 似乎决定逐字输出转义码。
用截图更容易理解:
这是我的 Powershell 配置文件:
function prompt {
"" + [char]0x001b + "[35m colorized >" + [char]0x001b + "[0m"
}
Run Code Online (Sandbox Code Playgroud)
是否有重新启用 ANSI 代码功能的技巧,或者这只是 Powershell 或 git 输出文本的一些怪癖?请注意,git 只是一个示例,我发现有几个程序将其搞砸了,但并非所有程序都如此。
例如,MSBuild 工作得很好。
小智 3
噢!嗨!当我兴奋地使用 ANSI 对所有内容进行着色时,我自己也遇到了这个问题。
首先,我接受了这个(不记得我最初是如何偶然发现它的,但非常感谢原始编码器)https://github.com/bozho/AnsiColorOut/blob/master/AnsiColorOut/Console.cs
然后在我的个人资料中我确保添加它
Add-Type -Path C:\Users\audaxdreik\Documents\WindowsPowerShell\Console.cs
Run Code Online (Sandbox Code Playgroud)
然后我在我的个人资料中为我经常使用的已知问题程序创建一个快速自定义包装器,即 git
$gitPath = (Get-Command -Name git).Source
function git {
& $gitPath $args
[Bozho.PowerShell.Console]::EnableVirtualTerminalProcessing()
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2854 次 |
最近记录: |