美化 Windows 终端(Terminal + PowerShell)

前言

废话不多说,这是我做的一个 Oh-My-Posh 终端主题,仓库地址: https://github.com/Lete114/oh-my-posh-themes

效果如下:

Windows Terminal

安装需要 Win10 2004(内部版本 19041)或更高版本

Windows Terminal 是微软开源一个终端工具,主要功能包括多个选项卡、窗格、Unicode、和 UTF-8 字符支持,GPU 加速文本渲染引擎以及自定义主题、样式和配置

总之比 cmd、powershell 那丑不拉几的窗口好使就对了

可以通过微软商店直接安装,或者到开源仓库取下载安装都可以

https://github.com/microsoft/terminal

Oh My Posh

Oh My Posh 类似于 Oh My zsh 的一个命令行提示工具,具体的得看官网描述 Oh My Posh Docs

安装 Oh My Posh ,参考官网安装教程
https://ohmyposh.dev/docs/installation/windows

使用 winget 安装

COPY
1
winget install JanDeDobbeleer.OhMyPosh -s winget

建议使用 powershell

使用 Oh My Posh,如果你不找到你当前使用的是什么终端,你可以执行这条命令查看,具体详细请看官网 https://ohmyposh.dev/docs/installation/prompt

COPY
1
oh-my-posh get shell

使用记事本或 vscode 打开 powershell 的配置文件

COPY
1
2
3
4
5
# 记事本
notepad $PROFILE

# vscode
code $PROFILE

当上述命令出现错误时,确保先创建配置文件

COPY
1
New-Item -Path $PROFILE -Type File -Force

在文件中添加如下代码使用 Oh My Posh

COPY
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 注意这仅仅只是使用了 Oh My Posh,你可能会发现终端有乱码
# 因为 Oh My Posh 使用了 Nerd Fonts 字体中的一些图标,如果你的电脑中没有 Nerd Fonts 字体就会出现乱码
# 自带的主题就使用了 Nerd Fonts 的图标
oh-my-posh init pwsh | Invoke-Expression

# 自定义主题,使用 Oh My Posh 自带的一些开箱即用主题
# 这里是 Oh My Posh 自带的主题 https://ohmyposh.dev/docs/themes
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH/robbyrussell.omp.json" | Invoke-Expression

# 下载我做的主题,我主题不需要安装 Nerd Fonts 字体
# https://raw.githubusercontent.com/Lete114/oh-my-posh-themes/main/lete114/lete114.minimal.omp.yaml
oh-my-posh init pwsh --config "你下载的路径/lete114.minimal.omp.yaml" | Invoke-Expression

# 之后执行以下命令加载配置文件
. $profile

安装字体

如果你使用的主题是含 minimal 的就不需要安装

参考官方: https://ohmyposh.dev/docs/installation/fonts#configuration

COPY
1
2
3
4
5
oh-my-posh font install

# 也可以直接手动下载
# 下载完成后解压,全选右键点击安装即可自动安装
# https://github.com/ryanoasis/nerd-fonts/releases/download/v2.1.0/Meslo.zip

以下操作是根据 Oh My Posh 官网教程搬过来的,但不知道为什么我的字体依然显示乱码
有知道是啥问题的小伙伴可以在评论区回复我
当然,设置字体也可以在 Windows Terminal 的设置中设置,不必打开配置文件 (但同样我也不知道为什么我的 Windows Terminal 里面没有设置字体的选项,就挺离谱 😅)

安装完成后打开 Windows Terminal 然后按 Ctrl+Shift+,(逗号) 来打开 settings.json 配置文件

找到 profiles->defaults 设置 font->face

COPY
1
2
3
4
5
6
7
8
9
10
11
12
{
"profiles":
{
"defaults":
{
"font":
{
"face": "MesloLGM NF"
}
}
}
}

posh-git

提供完整的 git 命令行提示以及自动补全

https://github.com/dahlbyk/posh-git

COPY
1
2
# 安装 posh-git
Install-Module posh-git -Scope CurrentUser -Force

然后打开 PowerShell 配置文件,添加一行导入命令 Import-Module posh-git 即可

COPY
1
2
3
4
5
# 记事本打开配置文件
notepad $PROFILE

# 或使用 vscode 打开配置文件
code $PROFILE

PSReadLine

PowerShell 官方的插件,可以放心使用

提供输入提醒,类似于 zsh 中有个插件,具体叫什么名字我忘了,就是当你输入一个命令输入到一半后,控制台就会有灰色命令提示,之后按下方向键的右键(->)键就能不全的根据

https://github.com/PowerShell/PSReadLine

COPY
1
2
3
4
# 以下是搬运的官方的教程

Install-Module -Name PowerShellGet -Force
Install-Module PSReadLine -AllowPrerelease -Force

之后

COPY
1
2
3
4
5
6
7
8
9
10
11
12
13
14

# 记事本打开配置文件
notepad $PROFILE

# 或使用 vscode 打开配置文件
code $PROFILE

# PSReadLine
Import-Module PSReadLine
# Enable Prediction History
Set-PSReadLineOption -PredictionSource History
# Advanced Autocompletion for arrow keys
Set-PSReadlineKeyHandler -Key UpArrow -Function HistorySearchBackward
Set-PSReadlineKeyHandler -Key DownArrow -Function HistorySearchForward
Authorship: Lete乐特
Article Link: https://blog.imlete.cn/article/Beautify-Windows-Terminal-PowerShell.html
Copyright: All posts on this blog are licensed under the CC BY-NC-SA 4.0 license unless otherwise stated. Please cite Lete乐特 's Blog !