Powershell美化
升级到Powershell 7
电脑自带的是pwsh5.1,而pwsh7支持跨平台,并且加入了三元运算符和管道链运算符,报错内容更加简洁明了,而不是像5一样长篇大论。
可以使用$PSVersionTable
查看一下版本,如果是7则可跳过此步。
安装:
在powershell运行:
winget install --id Microsoft.Powershell --source winget
并为当前用户创建一个配置文件(后面要用到):
if (!(Test-Path -Path $PROFILE)) { New-Item -ItemType File -Path $PROFILE -Force }
pwsh7和pwsh5.1是共存的,因为他们的安装路径和可执行文件名,以及配置文件都是互相独立的,因此在windows terminal上可以看到两个powershell。
7是安装在$env:ProgramFiles\PowerShell\7
,而5.1安装在 $env:WINDIR\System32\WindowsPowerShell\v1.0
对应的,他们的配置文件分别在$HOME\Documents\PowerShell
和$HOME\Documents\WindowsPowerShell
安装oh-my-posh
官方GitHub 仓库 ,类似于oh-my-zsh,为pwsh提供了很多主题
安装oh-my-posh:
winget install oh-my-posh
,待安装后重启pwsh,输入(Get-Command oh-my-posh).Source
验证安装是否成功修改pwsh配置文件 oh-my-posh自带了很多主题,主题的配置文件使用json格式,存放的目录可以通过
$env:POSH_THEMES_PATH
找到,可以到 官网 预览各种主题的样式,然后选择一款主题,写入pwsh的配置文件中。notepad $PROFILE
打开配置文件,选择你想要的主题,格式如下:
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\powerlevel10k_rainbow.omp.json" | Invoke-Expression
其中的powerlevel10k_rainbow.omp.json
就是主题的json文件,可根据自己喜好更改。
保存配置文件后,. $PROFILE
来使配置文件生效。
主题生效后,可能会有一些图形图案无法显示,表现为矩形框框,这是因为字体不适配的原因,oh-my-posh官方推荐下载 Nerd Fonts 字体,下载安装完字体后,在pwsh中使用
Ctrl+Shift+,
来打开pwsh的setting.json
文件,这里类似于主题文件,对pwsh的字体、背景、快捷键等进行了配置。找到font的位置,将
face
的值改为Nerd的字体。
{
"profiles":
{
"defaults":
{
"font":
{
"face": "MesloLGM NF"
}
}
}
}
oh-my-zsh还有一个很好用的功能,就是可以补全历史命令,pwsh也可以,需要安装 PSReadLine ,令人高兴的是,pwsh7中已经内置了PSReadLine,只需要在配置文件中设置即可。
notepad $PROFILE
打开配置文件,在文件尾部增加Set-PSReadLineOption -PredictionSource History
更多的具体细节配置可参考 官网