windows Shell 窗口美化
windows Shell 窗口美化
Think.Wang一、工具准备和参考文档
1.工具准备
- WindowsTerminal:本次配置的终端工具,当然也可将本文作为参考
- WSL2:Windows Linux子系统
2.参考文档
- Microsoft官方教程 :教程:使用 Oh My Posh 为 PowerShell 或 WSL 设置自定义提示符
- oh-my-posh官方教程:oh-my-posh
二、WindowsTerminal的基础设置(必做步骤)
1.字体设置
首先去 Github 下载 nerd-fonts 字体。字体设置的目的是为了保证在安装了 oh-my-posh 后不产生特殊字符显示的问题。
下载releases的FiraCode.zip:FiraCode3.3.0.zip 其他版本可自行下载。下载完成后解压、安装字体。
在WindowsTerminal
中设置字体:
2.设置WindowsTerminal背景美化(可选)
三、PowerShell命令行美化
提示:请提前以管理员身份运行 PowerShell
1. 安装 Powershell 7
相比于 Windows 默认提供的 Powershell,Powershell 7 拥有以下几个优势:
- 支持跨平台使用,增强了其灵活性和适用范围。
- 提供了更优越的性能表现。
- 处于持续更新状态,保证了功能的不断完善和安全性的提升。
简而言之,Powershell 7 是 Powershell 的升级版。
官网地址:
Github 地址:
https://github.com/PowerShell/PowerShell
下载地址:
2.安装 Terminal(终端)
从 微软商店(Microsoft Store) 当中安装即可。
安装地址(懒得搜点这里的链接):Windows Terminal - Microsoft Apps
3. 安装 Oh my posh
如上,从微软商店安装。
安装地址(懒得搜点这里的链接):oh-my-posh - Microsoft Apps
4 安装字体
由于 Oh My Posh 的众多主题广泛应用了各式图标,但并非所有字体都对这类图标提供支持,导致显示可能出现问题。
官方推荐使用Meslo LGM NF字体以获得最佳体验,可通过点击上述链接下载并安装该字体。此外,如果想尝试更多种的 NF 字体,可以进下面链接查看更多种的。
Nerd Fonts - Iconic font aggregator, glyphs/icons collection, & fonts patcher
我个人,比较喜欢使用 JetBrainsMono Nerd Font,因为日常写 Python 需要使用 PyCharm,所以这个字体看习惯了,也不想使用其他字体了~
5. 配置
1. 创建 Powershell 7 的配置文件
输入如下命令,下面的命令会先检查配置文件存不存在,如果不存在才创建:
1 | if (-not (Test-Path $PROFILE)) { |
接下来,打开配置文件(以下示例展示的是使用记事本进行操作)。
1 | notepad $PROFILE |
2. 输入 Oh my posh 的配置
在打开的文件中输入如下命令:
1 | oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH/half-life.omp.json" | Invoke-Expression |
这意味着每次启动 PowerShell 时,都会自动执行上述命令。该命令中引用的 JSON 文件是 Oh My Posh 的主题配置文件。
Oh My Posh 内置了众多主题,大家可以根据个人偏好选择喜爱的一款。如果想浏览所有预设主题的样式,可通过下方链接进行查看:
完成以上步骤后,将获得一个初步美化过的 Terminal 界面:
6 常见错误
- 错误1 ,在编辑好5.2 后重新打开终端出现一下错误
解决方法:
执行
set-executionpolicy remotesigned
如果无异常字符出现,则设置成功。如果有以下提示,则按照步骤3执行
1
set-executionpolicy : windows powershell 已成功更新你的执行策略,但在更具体的作业域中定义的策略覆盖了该设置。由于发生覆盖,你的外壳程序将保留其当前的有效执行策略 bypass。请键入“get-executionpolicy -list”以查看你的执行策略设置。有关详细信息,请参阅“get-help set-executionpolicy”。
查看当前执行策略
首先,使用 get-executionpolicy -list 命令查看当前所有作用域的执行策略。
1
get-executionpolicy -list
输出示例:
1
2
3
4
5
6
7Scope ExecutionPolicy
----- ---------------
MachinePolicy Undefined
UserPolicy Undefined
Process Undefined
CurrentUser Restricted
LocalMachine RemoteSigned设置特定作用域的执行策略
1
set-executionpolicy remotesigned -scope currentuser
验证设置是否成功
1
get-executionpolicy -scope currentuser
*输出应为 RemoteSigned,表示设置成功。*
1
2
3
4
5
6
7
8wangbin in C:\Users λ get-executionpolicy -list
Scope ExecutionPolicy
----- ---------------
MachinePolicy Undefined
UserPolicy Undefined
Process Undefined
CurrentUser RemoteSigned
LocalMachine RemoteSigned
扩展
1. 安装Git扩展
posh-git 是一款专为 Windows 系统的 PowerShell 设计的 Git 扩展模块。它的主要目标是在 PowerShell 中提供更为友好、直观的 Git 命令行界面,通过整合 Git 相关的信息到命令提示符中,并提供方便快捷的键绑定,使得日常 Git 操作更为高效、直观。
安装
1 | Install-Module -Name posh-git -Scope CurrentUser |
安装完成后,重启 PowerShell 并输入以下命令启用 posh-git:Import-Module posh-git
不生效的话可以在前面的配置文件 Microsoft.PowerShell_profile.ps1
中追加以下内容
1 | Import-Module posh-git # 引入 posh-git |
2.历史命令联想
oh-my-zsh
有一个很便利的功能就是输入部分命令后、按 ↑
或 ↓
就可以联想历史的完整命令,其实在 oh-my-posh
中也能实现。
首先在 PowerShell
执行以下命令安装插件:
1 | Install-Module -Name PowerShellGet -Force |
然后修改前面的配置文件 Microsoft.PowerShell_profile.ps1
,在末尾追加以下内容:
1 | Import-Module PSReadLine # 历史命令联想 |
3. 卸载
1 | Uninstall-Module oh-my-posh -AllVersions |
CMD终端使用oh-my-posh
首先,安装clink工具,双击exe安装包即可安装
PS: 请记住 clink
的安装目录,下一步会用到~
然后,进入 clink
安装目录,创建 oh-my-posh.lua
文件,添加如下内容:
1 | load(io.popen('oh-my-posh init cmd'):read("*a"))() |
或者用你自己设置的主题不用默认的
1 | "$env:POSH_THEMES_PATH/half-life.omp.json" |
WSL命令行美化
本次以 wsl-ubuntu22.04 版本进行演示
1.安装 homebrew 包管理器
如果不想使用 homebrew ,可以使用oh-my-posh官网提供的 手动安装方式 ,这里我就演示 homebrew 的安装
下载并安装
1 | # 安装 Homebrew 所需环境 |
2.安装 on my posh
安装
1 | brew install jandedobbeleer/oh-my-posh/oh-my-posh |
安装完成后可以执行 oh-my-posh get shell 查看当前终端类型,如果出现 Segmentation fault 提示,表示安装 on my posh 出现问题,请检查步骤二,重启WSL或者尝试手动安装。
3.选择主题
注意哈这里你得灵活一点,找到 oh-my-posh 的安装目录,不要照抄
查看 on-my-posh 的安装目录
1 | # 通过该命令可以跳转到 oh-my-posh 安装目录 |
拷贝 themes 文件夹
1 | # 先将 主题文件夹 拷贝至 家目录 /home/{username} |
添加主题,这里可以先看下第五步的说明,将如下代码添加到 ~/.bashrc ~/.profile ~/.bash_profile 三个文件的其中之一的结尾,哪个有效果就是哪个,一个个试
1 | # 注意 ~/ 后面要写你拷贝后 {themes} 的目录,我这里就是~/themes,jandedobbeleer可以换成你喜欢的主题名称例如 wholespace |
使用体验
- 优点
- oh-my-posh 总体还不错,能够方便的展示 git 相关的信息
- 缺点
- 性能拉跨,每次终端可能需要0.5s到2s之间的延迟卡顿,相比于 linux 上的 shell 要慢不少
有就行了,要啥自行车~