还在用默认的主题?通过 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 安装路径不是上面的路径,则需要手动修改为您的路径。

相关推荐
conkl4 天前
Linux 零基础万字入门指南(进阶详解版)
linux·运维·服务器·ssh·文件管理·shell·linux基础
IT成长日记5 天前
【自动化运维神器Ansible】playbook命令行变量定义全流程解析
运维·自动化·ansible·变量·命令行·playbook
爱吃猪排5 天前
基于 Paddle Inference 3.0 的高性能 OCR 服务实现
人工智能·命令行
czhc11400756636 天前
LINUX812 shell脚本:if else,for 判断素数,创建用户
shell
茶之夭夭6 天前
Centos离线部署之Minio
shell
小任今晚几点睡7 天前
防火墙环境下的全网服务器数据自动化备份平台搭建:基于 rsync 的完整实施指南
服务器·shell·rsync·自动化备份
UrbanJazzerati8 天前
PowerShell 自动化实战:自动化为 Git Staged 内容添加 Issue 注释标记 (2)
后端·面试·shell
UrbanJazzerati9 天前
PowerShell 自动化实战:自动化为 Git Staged 内容添加 Issue 注释标记
后端·面试·shell
子洋9 天前
现代化 ls 命令替代工具:EZA
前端·后端·shell
UrbanJazzerati10 天前
如何使用 PowerShell 动态授权不同 Salesforce 环境的详细指南
面试·shell