安装 ohmyposh 来美化 powershell

通过安装 ohmyposh 来美化 powershell,最终效果如下。

ohmyposh

安装 Oh My Posh

可以到 Microsoft Store 安装

oh-my-posh-app-store

或者通过命令行来安装,需要用管理员身份运行。

winget install JanDeDobbeleer.OhMyPosh -s winget

不过,极大的可能会因为网络问题安装失败

> winget install JanDeDobbeleer.OhMyPosh -s winget
已找到 Oh My Posh [JanDeDobbeleer.OhMyPosh] 版本 14.24.0
此应用程序由其所有者授权给你。
Microsoft 对第三方程序包概不负责,也不向第三方程序包授予任何许可证。
正在下载 https://github.com/JanDeDobbeleer/oh-my-posh/releases/download/v14.24.0/install-amd64.exe
执行此命令时发生意外错误:
InternetOpenUrl() failed.
0x80072efd : unknown error

我是通过设置命令行走代理来解决的。

想要 ls 后显示的文件带图标,需要安装 Terminal-Icons(需要用管理员身份运行)

Install-Module -Name Terminal-Icons -Repository PSGallery

ohmyposh-powershell

需要输入两次 y,大小写随便。

装好后可以尝试在终端执行

Import-Module -Name Terminal-Icons

如果像这样报错了

> Import-Module -Name Terminal-Icons

Import-Module : 无法加载文件 C:\Program Files\WindowsPowerShell\Modules\Terminal-Icons\0.10.0\Terminal-Icons.psm1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。

所在位置 行:1 字符: 1

+ Import-Module -Name Terminal-Icons

+ ~~~~~~~~~~

+ CategoryInfo : SecurityError: (:) [Import-Module],PSSecurityException

+ FullyQualifiedErrorId : UnauthorizedAccess,Microsoft.PowerShell.Commands.ImportModuleCommand

需要更改执行策略,执行命令后输入 y 再按回车。

> set-executionpolicy remotesigned

执行策略更改

执行策略可帮助你防止执行不信任的脚本。更改执行策略可能会产生安全风险,如 https:/go.microsoft.com/fwlink/?LinkID=135170

中的 about_Execution_Policies 帮助主题所述。是否要更改执行策略?

[Y] 是(Y) [A] 全是(A) [N] 否(N) [L] 全否(L) [S] 暂停(S) [?] 帮助 (默认值为“N”): y

打开 PowerShell profile,加入这两行。

oh-my-posh --init --shell pwsh --config ~\Documents\WindowsPowerShell\ohmyposhv3-v2.json | Invoke-Expression
Import-Module -Name Terminal-Icons

json 配置文件下载:ohmyposhv3-v2 (github.com)

直链:https://gist.github.com/shanselman/1f69b28bfcc4f7716e49eb5bb34d7b2c/raw/8e9c9a8736ff4e9e5a863c20833d614549ccbc32/ohmyposhv3-v2.json

我也放一份到我的博客里面:ohmyposhv3-v2 可以右键,「链接另存为…」来下载。

我是把这个文件直接放到 Documents\WindowsPowerShell 里面。

你也可以放在其它地方,只要改 --config 后面的路径就行。

这样修改之后,之后打开终端就自动加载 oh my posh 了。

ohmyposh-1806

这里显示 1806 毫秒,后面我再新开两个 tab,都是 800 毫秒左右。

然后还需要设置字体,不然这些图标加载不出来。可以到这里下载字体,选择自己喜欢的,下载后是压缩包,解压出来,选中所有字体,右键安装即可。

win-terminal-font

之后到「设置」「默认值」「外观」里面更改字体。