我在 PyCharm 中使用 PowerShell 7 作为终端,但命令的默认颜色不太清晰。
我创建了一个profile.ps1
,并以这种方式设置它们:
# Set colours
Set-PSReadLineOption -Colors @{
Command = "`e[30;107m"
Comment = "`e[32;107m"
ContinuationPrompt = "`e[30;47m"
Emphasis = "`e[30;107m"
Error = "`e[91;47m"
InlinePrediction = "`e[90;47m"
Keyword = "`e[92;47m"
ListPrediction = "`e[33;47m"
ListPredictionSelected = "`e[48;5;238m"
Member = "`e[97;47m"
Number = "`e[30;47m"
Operator ="`e[90;47m"
Parameter = "`e[90;47m"
Selection = "`e[30;107m"
String = "`e[36;47m"
Type = "`e[30;47m"
Variable = "`e[92;47m"
}
但我找不到如何修改Get-ChildItem
目录的结果。由于我使用的是浅色主题,结果并不十分清楚。
环顾四周,似乎有一些使用第三方命令或复杂脚本的解决方案,但我想知道在 PowerShell 7 中是否有一种简单的方法可以使用命令来执行此操作Set-PSReadLineOption
。
有什么建议么?
答案1
Get-ChildItem 输出的颜色支持已包含在PR#14403并发布到v7.2.0。
可通过以下方式配置$PSStyle
偏好变量。
你应该把任何改变$PROFILE
— 正如您一直在做的那样 — 但您需要修改$PSStyle
,而不是 PSReadLine 选项。
来自文档:
$PSStyle.FileInfo
是一个嵌套对象,用于控制 FileInfo 对象的颜色。
- 目录- 内置成员指定目录的颜色
- 符号链接- 内置成员指定符号链接的颜色
- 可执行文件- 内置成员用于指定可执行文件的颜色。
- 扩大- 使用此成员定义不同文件扩展名的颜色。扩展名成员预先包含存档和 PowerShell 文件的扩展名。注意
笔记
$PSStyle.FileInfo
PSAnsiRenderingFileInfo
仅在启用实验性功能时可用。有关详细信息,请参阅关于实验功能和使用实验性功能。在 PowerShell 7.3 中,该
PSAnsiRenderingFileInfo
功能已成为主流并默认可用。
因此,要更改文件和目录的颜色,请在$PSStyle.FileInfo
对象为代表您选择的颜色的 ANSI 转义序列。
例如,将目录的颜色更改为亮黄色:
# As separate Yellow and Bold attributes
$PSStyle.FileInfo.Directory = "`e[33;1m" # Note the double quotes!
# Sequences 90-97 and 100-107 are also supported
$PSStyle.FileInfo.Directory = "`e[93m" # Note the double quotes!
双引号是必不可少的,否则`e
将被按字面意思解释,并且会出现错误SetValueIncovationException
。
虽然文档声称该方法还支持 24 位颜色FromRgb
,但该方法仅适用于前景色和背景色样式(由于超链接数量已达上限,因此我无法直接链接到这两个类的 SDK 文档,因此这里是 SDK 文档System.Management.Automation.PSStyle
)。