一、准备环境

终端:Windows Terminal

Windows 终端是一个面向命令行工具和 shell(如命令提示符、PowerShell 和适用于 Linux 的 Windows 子系统 (WSL))用户的新式终端应用程序。 它的主要功能包括多个选项卡、窗格、Unicode 和 UTF-8 字符支持、GPU 加速文本呈现引擎,你还可用它来创建你自己的主题并自定义文本、颜色、背景和快捷方式。

终端美化:oh-my-posh

Oh my Posh is a custom prompt engine for any shell that has the ability to adjust the prompt string with a function or variable.

终端字体:Cascadia Code PL

This is a fun, new monospaced font that includes programming ligatures and is designed to enhance the modern look and feel of the Windows Terminal.

二、安装

2.1 Windows Terminal 安装

可以从 Microsoft Store 直接安装 Windows 终端。也可以通过 GitHub 发布页上获取最新版本,也是本文的安装方法(如果从 GitHub 安装,终端将不会自动更新为新版本)。

安装完成以后,通过ctrl+,打开终端设置页面,在启动选项卡中,可以选择默认的启动终端类型,本文选择 powershell 为默认终端。

2.2 Cascadia Code PL 字体安装

通过准备环境中提供的链接,到 github 的 release 页面中下载最新的字体文件压缩包,从中选择Cascadia Code PLCascadia Mono PL两种字体进行安装。不同字体区别如下,连字效果参考如动态图所示(取自微软文档)。
lianzi

字体名称 包括连字 包括 Powerline 字形
Cascadia Code
Cascadia Mono
Cascadia Code PL
Cascadia Mono PL

window 环境下,直接双击 TTF 文件安装即可。安装完成以后,在 Windows Terminal 中通过ctrl+,打开终端设置页面,对Windows PowerShell命令提示符的配置文件进行修改,在外观-字体中,将字体改为Cascadia Mono PL,如有连字需求,可改为Cascadia Code PL

如需在 vscode 中同样使用 PL 字体,需要对配置文件进行修改,通过ctrl+,打开设置页面,搜索font,将Code Lens Font Family的值修改为Cascadia Code PL,该修改只作用于 windows 终端,如果需要在 wsl 中进行使用,需要在 wsl 中单独安装 pl 字体,通过GitHub 仓库 powerline/fonts下载字体库,通过内置的install.sh脚本进行安装。

2.3 oh-my-posh 安装

微软中文文档中推荐使用以下命令在 power shell 中进行安装(如果尚未安装 NuGet,可能需要安装它。 如果是这种情况,PowerShell 命令行会询问是否要安装 NuGet。 选择 [Y]“是”。 你可能还需要批准从不受信任的存储库 PSGallery 中安装模块。 选择 [Y]“是”。)

1
2
Install-Module posh-git -Scope CurrentUser
Install-Module oh-my-posh -Scope CurrentUser

若使用 PowerShell Core,则需要额外安装 PSReadline.

1
Install-Module -Name PSReadLine -Scope CurrentUser -Force -SkipPublisherCheck

通过以上脚本对 oh-my-posh 进行安装后,对应 Modules 会被安装在用户目录中,然而 oh-my-posh 并不支持中文路径的识别,在后续配置默认启动后,会将中文识别为乱码,导致命令出错。本文所作出的解决方案是将已安装存储在$Home\Document\PowerShell\Modules的文件,直接剪切粘贴到C:\Program Files\WindowsPowerShell\Modules中。全新安装时,可以参考Get-ExecutionPolicy -List内容修改-Scope CurrentUser更改安装位置。

2.4 oh-my-posh 设置

最后通过修改 powershell 默认脚本进行环境的自动启动,官方文档说明默认脚本存在四个路径,对应不同用户环境。配置文件路径包含以下变量:

  • $PSHOME变量,存储 PowerShell 的安装目录
  • $Home变量,用于存储当前用户的主目录
说明 路径
所有用户、所有主机 \$PSHOME\Profile.ps1
所有用户,当前主机 \$PSHOME\Microsoft.PowerShell_profile.ps1
当前用户,所有主机 $Home\Document\PowerShell\Profile.ps1
当前用户、当前主机 $Home\Document\PowerShell\Microsoft.PowerShell_profile.ps1

在实际测试中,$Home直接指向了C:\User\username路径,但如果用户在设置中修改过文档存储路径,则应该以实际的文档存储路径为准。

推荐在当前用户、当前主机的路径中对脚本进行设置,添加代码如下:

1
2
3
4
5
6
7
8
#中文文档提供的修改命令,经测试存在问题,发现是没有同步英文文档最新设置.
Import-Module posh-git
Import-Module oh-my-posh
Set-Theme Paradox (该行存在命令错误)
#以下为英文文档提供的修改命令,需要将以下三行导入脚本中.
Import-Module posh-git
Import-Module oh-my-posh
Set-PoshPrompt -Theme paradox

三、参考