前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >windows中使用Oh My Posh美化你的终端PowerShell或CMD

windows中使用Oh My Posh美化你的终端PowerShell或CMD

作者头像
游魂
发布2024-08-06 10:44:31
1.7K0
发布2024-08-06 10:44:31
举报
文章被收录于专栏:前端开发

前言

Oh My Posh是一款终端个性化工具,支持 Windows、Linux(WSL)、macOS 系统上的 PowerShell、bash、zsh 等终端,可以配置不同主题达到个性化的效果。

今天上班忘记拿吃饭的家伙了 => 电脑,回家拿已来不及。还好公司有备用电脑,但是看惯了 Mac 的终端, Windows 系统的终端实在是太丑了,于是想到了终端个性化工具:oh-my-posh,折腾一番有了本文。

最终效果图如下

安装 Windows Terminal

win11 自带了 Windows Terminal 不用自己再装,如果你的系统没有 Windows Terminal ,需要先去 Microsoft Store 中下载:

安装 oh-my-posh

oh-my-posh 应该是对标 oh-my-zsh 的工具,其安装步骤如下:

  1. 使用系统管理员打开 Windows Terminal
  2. 执行安装命令: winget install JanDeDobbeleer.OhMyPosh -s winget
  3. 使用系统管理员重新打开 Windows Terminal,使得 oh-my-posh 命令生效
  4. 安装必要字体(否则某些 icron 会乱码),执行命令 oh-my-posh font install,此时会出现字体的候选列表,官方推荐安装 Meslo :

配置 oh-my-posh

安装完成后,现在即使打开 Windows Terminal 是没有任何效果的,需要再做一下配置。

配置运行 Windows Terminal 时自动加载 oh-my-posh:

执行命令 echo $PROFILE 查看 powershell 的配置文件路径,第一次配置肯定时不存在的,需要手动创建这个文件

  • 在目录 C:\Users\用户名\Documents\WindowsPowerShell
  • 新建 Microsoft.PowerShell_profile.ps1 文件 内容如下
代码语言:javascript
复制
C:\\Users\\用户名\\AppData\\Local\\Programs\\oh-my-posh\\bin\\oh-my-posh.exe init pwsh --config $env:POSH_THEMES_PATH\montys.omp.json | Invoke-Expression

Import-Module posh-git # 引入 posh-git
Import-Module PSReadLine # 历史命令联想

# 设置预测文本来源为历史记录 
Set-PSReadLineOption -PredictionSource History 
# 设置 Tab 为菜单补全和 Intellisense 
Set-PSReadLineKeyHandler -Key "Tab" -Function MenuComplete 
# 每次回溯输入历史,光标定位于输入内容末尾 
Set-PSReadLineOption -HistorySearchCursorMovesToEnd 
# 设置向上键为后向搜索历史记录 
Set-PSReadLineKeyHandler -Key UpArrow -Function HistorySearchBackward 
# 设置向下键为前向搜索历史纪录 
Set-PSReadLineKeyHandler -Key DownArrow -Function HistorySearchForward
  • 注意 用户名 请替换为你的用户名
  • 之后可以使用 notepad $PROFILE 快速打开配置文件

修改这个文件内容:

  • 在其中添加一行: oh-my-posh init pwsh --config $env:POSH_THEMES_PATH\montys.omp.json | Invoke-Expression
  • 这行代码的意思是: 使用 montys.omp.json 配置文件初始化 oh-my-posh
  • 其中的 montys.omp.json 就是 oh-my-posh 的主题样式,可以到官方的主题列表选择自己喜欢的主题替换上去

这个时候重新启动 Windows Terminal,就会自动加载这个配置文件,进入 oh-my-posh 终端

这里注意,有可能你重新打开 Windows Terminal 时,会报错: 无法加载文件 .....\Microsoft.PowerShell_profile.ps1,因为在此系统上禁止运行脚本

这里的 Microsoft.PowerShell_profile.ps1 就是你刚刚修改的配置文件,其实它是以 ps1 形式存在的一个 powershell 脚本。

这个报错是因为你的 PowerShell 限制了执行策略,不允许随便执行第三方脚本。

解决方法也很简单,只需要以管理员权限打开 Powershell:

  1. 执行 Set-ExecutionPolicy RemoteSigned 修改策略
  2. 执行 Get-ExecutionPolicy 确认策略是否已修改

此时再重新打开 Windows Terminal 就可以成功进入 oh-my-posh 了

配置字体

此时 oh-my-posh 一般是乱码的,原因是未设置字体。

  1. 在 Windows Terminal 顶部最右边,依次点击 ->> 设置 ->> Windows Powershell ->> 外观
  2. 在【字体】中选择刚刚安装的 Meslo: MesloLGM Nerd Font

重新打开 Windows Terminal,至此 oh-my-posh 已配置完成。

更换主题

如果你需要更换其它主题,可以去网站浏览也可以使用命令查看(初始化之后才能使用下面的命令):

代码语言:javascript
复制
Get-PoshThemes

在网站上浏览:https://ohmyposh.dev/docs/themes

这些主题通常都已经默认下载了,位于:

代码语言:javascript
复制
C:\Users\用户名\AppData\Local\Programs\oh-my-posh\themes

你只需要启用它们即可,编辑 PowerShell 的配置文件并修改 oh-my-posh 的 init 那一行即可:

代码语言:javascript
复制
 notepad $PROFILE

jandedobbeleer换成你喜欢的主题名称即可:

代码语言:javascript
复制
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH/jandedobbeleer.omp.json" | Invoke-Expression

安装Git扩展

posh-git 是一款专为 Windows 系统的 PowerShell 设计的 Git 扩展模块。它的主要目标是在 PowerShell 中提供更为友好、直观的 Git 命令行界面,通过整合 Git 相关的信息到命令提示符中,并提供方便快捷的键绑定,使得日常 Git 操作更为高效、直观。

安装

代码语言:javascript
复制
Install-Module -Name posh-git -Scope CurrentUser

安装完成后,重启 PowerShell 并输入以下命令启用 posh-git:Import-Module posh-git

不生效的话可以在前面的配置文件 Microsoft.PowerShell_profile.ps1中追加以下内容

代码语言:javascript
复制
Import-Module posh-git # 引入 posh-git

历史命令联想

oh-my-zsh 有一个很便利的功能就是输入部分命令后、按 就可以联想历史的完整命令,其实在 oh-my-posh 中也能实现。

首先在 PowerShell 执行以下命令安装插件:

代码语言:javascript
复制
Install-Module -Name PowerShellGet -Force
Install-Module PSReadLine -AllowPrerelease -Force

然后修改前面的配置文件 Microsoft.PowerShell_profile.ps1,在末尾追加以下内容:

代码语言:javascript
复制
Import-Module PSReadLine # 历史命令联想

# 设置预测文本来源为历史记录 
Set-PSReadLineOption -PredictionSource History 
# 设置 Tab 为菜单补全和 Intellisense 
Set-PSReadLineKeyHandler -Key "Tab" -Function MenuComplete 
# 每次回溯输入历史,光标定位于输入内容末尾 
Set-PSReadLineOption -HistorySearchCursorMovesToEnd 
# 设置向上键为后向搜索历史记录 
Set-PSReadLineKeyHandler -Key UpArrow -Function HistorySearchBackward 
# 设置向下键为前向搜索历史纪录 
Set-PSReadLineKeyHandler -Key DownArrow -Function HistorySearchForward

卸载

代码语言:javascript
复制
Uninstall-Module oh-my-posh -AllVersions

配置cmd终端使用oh-my-posh

首先,安装clink工具,双击exe安装包即可安装

PS: 请记住 clink 的安装目录,下一步会用到~

然后,进入 clink 安装目录,创建 oh-my-posh.lua 文件,添加如下内容:

代码语言:javascript
复制
load(io.popen('oh-my-posh init cmd'):read("*a"))()

或者用你自己设置的主题不用默认的

代码语言:javascript
复制
load(io.popen('oh-my-posh init cmd --config C:\\Users\\用户名替换\\AppData\\Local\\Programs\\oh-my-posh\\themes\\montys.omp.json'):read("*a"))()

配置VSCode终端使用oh-my-posh

在 VScode 里使用终端,可能会出现乱码或者图标不显示情况,也是设置一下字体就行。

直接输入你上面配置的 oh-my-posh 字体 如: MesloLGM Nerd Font

使用体验

  • 优点
    • oh-my-posh 总体还不错,能够方便的展示 git 相关的信息
  • 缺点
    • 性能拉跨,每次终端可能需要0.5s到2s之间的延迟卡顿,相比于 linux 上的 shell 要慢不少

有就行了,要啥自行车~

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-8-6 8:,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 安装 Windows Terminal
  • 安装 oh-my-posh
    • 配置 oh-my-posh
      • 配置字体
        • 更换主题
          • 安装Git扩展
            • 历史命令联想
              • 卸载
              • 配置cmd终端使用oh-my-posh
              • 配置VSCode终端使用oh-my-posh
              • 使用体验
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档