+ 工具

为 Windows PowerShell 换个主题(Oh My Posh)
2023-01-16

目录:

最近偶然看到配置主题的 Windows PowerShell 的样式,显示更多额外的信息,因为输出带有色块,整体看起来每行命令清楚了很多。看着朴素的终端我不禁沉思,或许是时候换个主题了。

主题

oh-my-posh 是一个开源 PowerShell 主题工具,提供了多种可选主题

主题

安装

有两种安装方法:

  1. 从 Microsoft Store 下载安装

    Windows Store Link

  2. 命令安装

    Set-ExecutionPolicy Bypass -Scope Process -Force; Invoke-Expression ((New-Object System.Net.WebClient).DownloadString(‘https://ohmyposh.dev/install.ps1’))

    Install-Module posh-git -Scope CurrentUser

    Install-Module oh-my-posh -Scope CurrentUser

输入以下命令,如果显示所有主题则安装成功

Get-PoshThemes

在预览所有主题后,记住你想要配置的主题名,我推荐使用 blue_owl 主题,总体实用性比较好,色彩搭配对命令的友好,并且可以显示时间信息。

安装完成后,主题文件会保存于 C:\Users..\AppData\Local\Programs\oh-my-posh\themes 路径下

配置文件

默认安装后,没有配置文件,需要先创建配置文件 Microsoft.PowerShell_profile.ps1

if (!(Test-Path -Path $PROFILE )) { New-Item -Type File -Path $PROFILE -Force }

打开配置文件 Microsoft.PowerShell_profile.ps1,默认的配置文件为空文件,此配置文件会在 Windows PowerShell 每次启动时加载

notepad $PROFILE

填写以下配置,配置的 blue_owl 主题改为你想要的主题

oh-my-posh 主题文件安装后默认会更新到系统的环境变量中,我们可以从环境变量中加载主题配置

oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\blue-owl.omp.json" | Invoke-Expression

配置保存后,重新启动 Windows PowerShell,如果成功显示主题,则说明配置成功了。

初步配置成功

主题 oh-my-posh 是基于 Nerd Fonts 字体进行设计的,因此输出显示会出现乱码,需要安装 Nerd Fonts 字体文件

安装 Nord Font 字体

进入 Nerd Fonts 官网,选择一个字体进行下载,解压后右键完成字体安装

Nerd Fonts 官网

设置字体

设置字体有两种方式:

  1. 在 Windows PowerShell 设置中切换

    打开 Windows PowerShell 设置,并在左侧菜单栏选中 Windows PowerShell 打开设置

    找到外观 > 文本 > 字体,切换成你安装的字体

    切换字体

  2. 修改 Windows PowerShell 的配置文件

    在 Windows PowerShell 界面中按下 ctrl+ shift +,后,会打开配置文件 settings.json,找到以下配置

    "profiles":
    {
        "defaults": {},
        ...
    }
    

    在 defaults 配置中新增安装的字体配置,保存文件

    "profiles":
    {
        "defaults": {
            "font":
            {
                "face": "BitstreamVeraSansMono NF"
            }
        },
        ...
    }
    

字体配置完成后,重新启动 Windows PowerShell,字体配置生效,命令输出不再出现乱码

VScode 集成

VScode 终端默认使用 Windows PowerShell,配置好主题后,为了在 VScode 中不出现乱码,需要在终端设置 Terminal › Integrated:Font Family 中填写字体

VScode字体配置

如果字体设置后终端乱码,请尝试以下操作:

  • 新安装的字体设置后重启 VScode
  • 切换 VScode 默认启动的 Powershell

后续更新

安装和更新的命令是一样的,命令执行后会动态更新 C:\Users..\AppData\Local\Programs\oh-my-posh 路径下主题文件

Set-ExecutionPolicy Bypass -Scope Process -Force; Invoke-Expression ((New-Object System.Net.WebClient).DownloadString(‘https://ohmyposh.dev/install.ps1’))

潜在问题

Windows PowerShell 5.1 配置后可能会存在启动缓慢的问题,因此建议替换为 PowerShell 7

感想

虽然只是配置主题,但是也花了不少时间,或许还会有机会给 PowerShell 设置主题,所以我把今天的配置流程进行记录,方便回顾。

也许在意外之中,我打开了终端的新世界,至此我或许也能换一种视角来看待终端

本文作者: Exisi 本文链接: 版权声明:本博客所有文章除特别声明外,均默认采用 CC BY-NC-SA 4.0 许可协议。