使用 OhMyPosh 美化 PowerShell¶
「可定制性最强、延迟最低的跨平台 / Shell 提示符渲染器」
懒得写介绍了,简单来说,就是把你的命令行 / shell 变好看。
安装¶
1. Oh My Posh 本体¶
可以通过 Scoop / Winget 来安装,当然也可以通过一行 Powershell 命令下载官方的安装脚本并执行手动安装,这里选择使用 Scoop 安装:
PowerShell | |
---|---|
上面的命令会安装两样东西:
oh-my-posh.exe
可执行文件themes
最新的 Oh My Posh 主题
可以在 POSH_THEMES_PATH
环境变量对应的文件夹中找到主题,
2. 字体¶
Nerd Fonts 官网:Nerd Fonts - Iconic font aggregator, glyphs/icons collection, & fonts patcher
Oh My Posh 显示图标需要 Nerd Fonts 字体,所以这一步我们需要安装一款 Nerd Fonts 字体并设置终端使用它。Nerd Fonts 字体并不是一个具体的字体,而是一系列字体。其中的每一个字体都可以看作是 某一个流行字体 + 一系列图标字体(如上图)。同时,Nerd Fonts 中大部分经过修改后的字体会拥有一个新的名字,但是和原本的名字很像,比如很知名的 SourceCodePro,在 Nerd Fonts 中经过“改造后”就被称为 SauceCodePro Nerd Font,很有趣。
你可以选择手动从官网下载并安装,不过现在 Oh My Posh 命令可以直接安装:
Text Only | |
---|---|
这里
sudo
是通过 scoop 安装的,用处就是以管理员权限执行该命令。如果没有sudo
就在有管理员权限的终端下执行命令。当然也可以制动
--user
来不用管理员权限,仅安装到当前用户下,不过对于一些应用可能会有一些副作用,字体还是安装到整个系统而非某个用户比较好。
不过我这里依旧选择使用 scoop,主要是方便更新之类的:
Text Only | |
---|---|
然后在 Windows Terminal 中设置使用它:
3. 修改 prompt¶
针对不同的 shell 有不同的方式,这里只写 powershell 的方式,详情参考官方文档:Change your prompt | Oh My Posh 如果不知道使用的是哪个 shell 可以运行:
PowerShell
编辑 PowerShell 的 profile 脚本(你可以使用任意的编辑器,这里我就用 neovim 了):
PowerShell | |
---|---|
添加下面一行:
PowerShell | |
---|---|
然后通过下面的命令来重新加载 profile:
PowerShell | |
---|---|
可以看到效果已经生效了:
二、配置¶
如果不指定配置,Oh My Posh 会使用其默认配置,若想指定配置则需要修改 profile 中的初始化命令添加 --config
选项:
可以添加两种 --config
选项:
- 到一个本地配置文件的路径
PowerShell | |
---|---|
- 到一个远端配置文件的 URL
PowerShell | |
---|---|
我们首先先使用一些 Oh My Posh 中的 themes
中带有的配置:
使用 Get-PoshThemes
可以在 powershell 中渲染出每一个主题的样子。
比如我们切换使用 catppuccin 主题:
PowerShell | |
---|---|
有关更详细的自定义,参阅文档:General | Oh My Posh。