还在用默认的主题?通过 Oh my push 美化你的 Powershell

安装 Windows Terminal

这是一个微软出品的终端,如果你的操作系统是Windows 11,那么它已经被集成在了系统中。

您也可以使用其它终端,请按照对应的使用方法修改字体和启动的 Shell。

前往 Windows Terminal 页面下载安装,或者可以直接在 Microsoft Store 搜索 Windows Terminal 进行安装。

安装完成后可在任意页面右键打开终端。

安装 Power Shell 7

Windows 10 / 11 系统自带的是 PowerShell 5。如果你还没有 PowerShell 7,点我下载。

在终端设置中,将 Power Shell 7 设为默认,并且将管理员权限打开。

如果不想将 Power Shell 7 设置默认,也可以在新建窗口时按住Ctrl键,就会以管理员权限新建窗口。

安装 Oh My Posh

Oh My Posh 是一个命令行提示工具,通常用于美化和自定义终端提示符。它允许用户创建自定义的终端提示符,包括颜色、图标、文本样式等,以提高终端的可视化吸引力和功能性。

安装 Oh My Posh。

复制代码
winget install JanDeDobbeleer.OhMyPosh

将 Oh My Posh 添加到环境变量中。

ruby 复制代码
$env:Path += ";C:\Users\user\AppData\Local\Programs\oh-my-posh\bin"

配置 Oh My Posh

打开 Power Shell 7 终端,执行下面的命令创建配置文件。

arduino 复制代码
New-Item -Path $PROFILE -Type File -Force

然后执行下面的命令打开文本编辑。

bash 复制代码
notepad $Profile

将以下内容输入到文件中。

kotlin 复制代码
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH/uew.omp.json" | Invoke-Expression

新建一个 Power Shell 7 终端查看效果。

Nerd 字体

配置好主题后,可以看到 Oh My Posh 的配置已经生效了,但是会有乱码的情况出现。乱码是因为当前 Windows Terminal 使用的字体不是 Nerd Fonts 字体(见官方文档),因此我们需要下载一份 Nerd Fonts 字体并配置为 Windows Terminal 使用的字体。

这里下载名为 CaskaydiaCove Nerd Font 的字体并进行安装。

安装完成后,重启 Windows Terminal,进入设置界面,选择 Power Shell 7 的外观选项修改字体。

重新启动 Windows Terminal 发现已经正常。

修改主题

如果想要修改主题,可以运行如下命令查看可用主题效果。

sql 复制代码
Get-PoshThemes

效果如下:

然后运行 notepad $Profile 命令打开配置文件,将 uew 修改为你选择的主题名称,如选择了 velvet,则完整内容如下:

kotlin 复制代码
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH/velvet.omp.json" | Invoke-Expression

也可以通过官方文档中的主题示例进行选择。

其他关于 Windows Terminal 的外观修改可以直接从设置中进行修改,如毛玻璃等效果。

为 VS Code 配置默认终端

如果想要将 VS Code 的默认终端设置为 Power Shell 7,打开设置,进入 settings.json,将如下配置复制到您的配置文件中。重启 VS Code 后生效。

json 复制代码
{
  "terminal.integrated.profiles.windows": {
    "PowerShell 7": {
      "path": "C:\Program Files\PowerShell\7\pwsh.exe"
    }
  },
  "terminal.integrated.defaultProfile.windows": "PowerShell 7"
}

如果你的 Power Shell 7 安装路径不是上面的路径,则需要手动修改为您的路径。

相关推荐
DogDaoDao17 小时前
Windows 双 Shell 全面对比:CMD 与 PowerShell 的技术剖析
windows·shell·测试·powershell·cmd·程序员开发
Lsetea2 天前
OpenSSL的checkhost显示不匹配却退出0:名称检查与证书验收
linux·https·shell·ssl证书·openssl
databook2 天前
使用命令行做描述性统计的技巧
数据分析·命令行
钱栈up5 天前
耳机音效不对,我顺手查了系统更新,结果挖出个崩溃了整天的服务
windows·shell
qetfw5 天前
grep 文本筛选:匹配、反选与退出状态验证
linux·shell
iReachers11 天前
Termux:把安卓手机变成随身的命令行工具箱
python·安卓·termux·命令行·实用工具
xbzb11 天前
Shell 函数:语法、传参与递归调用一次讲透
shell·递归·函数·调用·传参·递归调用
东鹏特饮13 天前
15个实用Linux运维脚本
linux·运维·shell·脚本·redhat·常用生产脚本
Zoom13 天前
【开源】7 天,我用 Rust 复刻了 FinalShell!Rhost v1.0.0 发布
rust·electron·shell
Vex2une15 天前
Windows PowerShell 发展史:从命令行工具到自动化核心
windows·自动化运维·命令行·powershell·cmd·脚本语言·对象管道