DragonCave

❤️

Windows Terminal Solarized Light 配色方案导致 PowerShell 中数字不可见的问题解决

Win11 内置了 Windows Terminal,很好用;Solarized Light 是我一直以来在各种代码工具中使用的配色方案,很舒服;Windows Terminal 内置了 Solarized Light ,很方便,然而,当它们放在一起时,PowerShell中的输入的数字就看不见了。

问题根源

问题的原因出现在 PowerShell 自身的默认颜色方案上,通过 Get-PSReadLineOption 可以查看到,MemberColor 和 NumberColor 值为 $([char]0x1b)[97m,导致数字的颜色与背景色融为了一体。

《Windows Terminal Solarized Light 配色方案导致 PowerShell 中数字不可见的问题解决》

解决问题

修改 PowerShell 的颜色方案即可解决问题,一行命令解决:

Set-PSReadLineOption -colors @{member = 'darkblue'; number = 'red'}

但是这个修改是无法持久化的,因此需要使用 profile 文件来永久修改。

在 PowerShell 中执行 $PsHome 得到 PowerShell 根目录,打开目录,在其中创建 profile.ps1 文本文件。

例如我的路径是”C:\Windows\System32\WindowsPowerShell\v1.0\Profile.ps1″,此目录可能是受保护的,不能创建文件的话就在别的地方建好复制进来即可。

文件内容:

if (Test-Path env:wt_session) { 
    Set-PSReadLineOption -colors @{member = 'darkblue'; number = 'red'}
}

保存即可生效。此后本机所有用户的 PowerShell 都会应用此修改。

如果打开 PowerShell 时报错 无法加载文件 C:\Windows\System32\WindowsPowerShell\v1.0\profile.ps1,因为在此系统上禁止运行脚本。,就需要设置一下执行策略。

打开管理员权限的 PowerShell ,执行

set-ExecutionPolicy RemoteSigned

一切OK。

点赞

发表评论

您的电子邮箱地址不会被公开。

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据