关键词: nerd-font; oh-my-posh; posh; powerline-font; powershell; scoop; winget

最终效果预览

说明事项

本文与网络上多数介绍 oh-my-posh 的文章的不同之处:

  1. 其他博客提到的安装命令已过时, 会被引导到 “官方迁移页面” (如下图). 本文是根据 oh-my-posh 官网给出的最新安装方式来安装. (截至 2022 年 5 月)

  1. 对所有命令都添加了注释, 帮助大家来理解.
  2. 增加了主题, 字体的安装和说明事项.
  3. 尽可能多地提供配图.

安装

安装 oh-my-posh

  1. 以管理员身份运行 powershell

  2. 输入以下命令

    # 安装
    winget install oh-my-posh# 此外, 如果要检查升级, 则使用下面命令
    winget upgrade oh-my-posh
    

    上述命令将安装以下内容:

    1. oh-my-posh.exe
    2. themes: 最新的 oh-my-posh 主题集. 在线查看: https://ohmyposh.dev/docs/themes
      1. 在你的用户环境变量中会新增一个 “POSH_THEMES_PATH”:

  1. 重启 powershell 即可生效

安装更多插件 (可选)

见本文 扩展 部分.

选择主题

预览主题

方式 1: 官方在线预览: https://ohmyposh.dev/docs/themes

方式 2: 在 powershell 中输入 Get-PoshThemes 命令.

方式 3: 本地已安装的 oh-my-posh 主题, 可以在这个路径找到:

C:\Users\<UserName>\AppData\Local\Programs\oh-my-posh\themes

(ps: 这个路径就是环境变量 - “POSH_THEMES_PATH” 的值.)

可以看到主题多达将近 100 个.

怎么应用主题

假设要应用 “M365Pricess” 主题:

在主题文件夹 (C:\Users\<UserName>\AppData\Local\Programs\oh-my-posh\themes) 下可以找到它的完整文件名:

如果只在当前 powershell 进程中应用, 则输入下面的命令回车立即生效:

oh-my-posh init pwsh --config $env:POSH_THEMES_PATH\M365Princess.omp.json | Invoke-Expression# 此外, 要想切换到其他主题, 只需更改文件名即可:
oh-my-posh init pwsh --config $env:POSH_THEMES_PATH\bubbles.omp.json | Invoke-Expression

如果要在全局生效, 那么我们需要在 $PROFILE 文件中写入该值:

  1. $PROFILE 文件的路径为 C:\Users\<UserName>\Documents\PowerShell\Microsoft.PowerShell_profile.ps1 (如果文件不存在, 则自己创建一个)
  2. 用记事本打开
  3. 往里面添加一行刚才的命令

  1. 重启 powershell, 即可看到效果

此外, 上面的 4 个步骤, 也可以通过命令行来全部完成. 这也是很多网上的博客中给出的命令:

# 检查 $PROFILE 文件是否存在, 如果不存在则新建空文件
if (!(Test-Path -Path $PROFILE )) { New-Item -Type File -Path $PROFILE -Force }# 用记事本打开
notepad $PROFILE

扩展

安装推荐字体

由于 oh-my-posh 主题包含了一些特殊字符, 有些字体会产生乱码.

使用下面推荐的字体不会出现乱码 (按推荐度排序):

  1. nerd font: https://www.nerdfonts.com/
  2. 等距更纱黑体
  3. powerline: https://github.com/powerline/fonts

注:

  • 不知道为什么, 我自己测试了等距更纱黑体和 fira mono for powerline 字体仍然会出现乱码. 使用 nerd 字体没有此问题.

  • nerd 有多种字族供选择. 在这个网站可以预览所有字体: https://www.programmingfonts.org/#font3270

    ps: 笔者个人比较喜欢 fira-mono 和 jetbrains-mono.

此外, 考虑到笔者经常使用 python rich 库, fira-mono 的边框字符的效果不是很好, jetbrains-mono 则非常完美.

安装更多插件

TODO

其他说明

我安装了旧的 oh-my-posh, 在 powershell 启动时会出现相关报错

报错截图:

解决方法:

根据截图中的 迁移建议 来操作, 即可卸载旧的 oh-my-posh 模块.

本文对官方的迁移建议进行了适当翻译. 如下步骤:

  1. 以管理员身份运行 powershell

  2. 移除相关的环境变量及其缓存

    Remove-Item $env:POSH_PATH -Force -Recurse
    

    这是一个可选的操作. 如果你的环境变量中没有 POSH_PATH, 上述命令没有效果, 但也不会有副作用.

  3. 卸载旧版 powershell 模块

    这里解释一下, oh-my-posh 的作者以前是维护两个源, 一个是最新的 winget 获取方法 (也就是正文介绍的安装方法), 另一个是 powershell module (也就是很多旧博客提供的 Install-Module 命令, 很显然, 现在 (2022年) 已经彻底不支持了, 只会导致报错.)

    所以我们要做的是卸载掉引起报错的 powershell module:

    Uninstall-Module oh-my-posh -AllVersions
    
  4. $PROFILE 文件中也移除它的导入

    # 用记事本打开 `$PROFILE` 文件
    notepad $PROFILE
    

    找到 “Import-Module oh-my-posh” 这一行, 把它删掉后保存.

升级 PowerShell 到 7.x

参考: https://aka.ms/PSWindows

从 这里 下载最新的 msi 安装包.

msi 文件可以双击来安装.

参考

按推荐的阅读优先级排列.

  • https://ohmyposh.dev/docs/installation/windows
  • https://ohmyposh.dev/docs/installation/customize
  • https://sspai.com/post/52907
  • https://vector.today/posts/a1abbbfe/
  • https://sspai.com/post/63233
  • https://ohmyposh.dev/docs/migrating

Windows Terminal 美化 / PowerShell 美化: oh-my-posh 主题安装和使用相关推荐

  1. 黑科技抢先尝(续2) - Windows terminal中Powershell Tab的美化全攻略

    温馨提示: 原文中含有一些外部链接,点击全文左下角的"阅读原文"体验会更佳喔~  接着之前的文章 黑科技抢先尝(续) - Windows terminal中WSL Linux 终端 ...

  2. 【美化到底】Windows下的Powershell美化

    如果你觉得文字版有一些说的不明白的地方,欢迎前往我的b站,观看视频版 [美化到底]Windows下的Powershell美化 先放一张效果图吧 如何实现这整个过程的呢?下面就来逐一讲解 首先我们需要下 ...

  3. Windows Terminal 使用及美化

    文本最后编辑时间:2020-06-13 前言 在这之前,我一直使用的都是 cmder,但是这东西说真的,有点难用.不过好在微软推出了 Windows Terminal,经过我的实测,感觉还是不错的.毕 ...

  4. windows terminal 的强力美化和设置

    什么是windows terminal 新一代的终端窗口,支持cmd,bash,powershell,支持标签页,支持字体,配色,窗口透明度,磨砂玻璃,窗口拆分,环境变量-(应该没了吧)接下来一一讲解 ...

  5. Windows Terminal修改背景美化

    Termail Windows Termail自推出以来就很受欢迎,无论是开源.现代化界面还是字体渲染.gpu加速以及fluent风格,都很大程度上让Termail成为了当红的windows平台终端模 ...

  6. 告别黑白CMD PowerShell + Windows Terminal 终端美化

    Windows Terminal 只支持 Windows 1903 以上的版本,如果你的电脑未升级,可以退出浏览了. 软件介绍与安装 在微软商店下载下载 PowerShell 和 Windows Te ...

  7. shell win10 改成cmd_Win10 的 PowerShell、CMD 和 Windows Terminal 全方位美化配置方法

    说明:# 原创 # 标签为 IT 之家在 IT 圈所设的投稿栏目,具体投稿规则点此查看. 其实网上的教程已经很多,但还是分享我自己亲测出来的吧 众所周知,Windows 10 自带的 PowerShe ...

  8. Windows Terminal PowerShell 7 美化

    记录一下有关Windows Terminal的折腾记录. 一.最后的成果图 二.Windows Terminal & PowerShell安装 1.Windows Store 直接搜索进行下载 ...

  9. Windows Terminal终端美化

    Windows Terminal 是微软在 2019 年 5 月的 Build Developer 会议上宣布并于 6 月份推出的一款开源终端应用程序. Windows Terminal 包含命令提示 ...

最新文章

  1. windows中安装Node.js-安装angular-cli
  2. ReactNative windows下打包生成安卓apk
  3. 关于无法用127.0.0.1连接数据库的解决办法
  4. php 处理html,PHP解析HTML代码
  5. Python学习笔记:Day 6 配置文件
  6. java 数组遍历_Java中遍历数组使用foreach循环还是for循环?
  7. java mask_Java 三大属性:
  8. AOJ 6.Hero In Maze
  9. python 首次登陆outlook 脚本_记Python“用户环境”的一次完美应用
  10. 联想键盘sk8821的Fn功能键
  11. 微信小程序开发(十七)模板消息
  12. [机缘参悟-6]:阳明心学三大核心思想:心外无物、知行合一、致良知的理解
  13. java实现身份证号码的严格校验!
  14. Linux面试题大全(带答案的哦)
  15. 基于JAVA学生用品交换平台计算机毕业设计源码+系统+数据库+lw文档+部署
  16. 【Leetcode】1512. Number of Good Pairs
  17. RFID正为零售防损带来新变化
  18. 晒一波程序员的桌面,逼格超级高!
  19. 比“跳一跳”好玩100倍的小游戏
  20. 车轮轨迹原理_在简单地形上小车运动轨迹的数学表达(一)

热门文章

  1. python自动生成中文句子_如何使用NLTK从归纳语法生成句子?
  2. 八.vue获取dom元素
  3. 开关电路中两种误差放大器的传递函数
  4. Conflux顾问罗玫教授出席俄罗斯央行Finopolis金融创新年会
  5. mysql创建表语句 cmd_mysql cmd命令行 创建数据库 表 基础语句
  6. 基于Python的收发包测试
  7. fundebug php,import提升导致Fundebug报错的解决方法(详细)
  8. 硬件I2C与模拟I2C解析
  9. 挂羊头卖狗肉蓄意欺骗读者——谭浩强《C程序设计(第四版)》中所谓的“按照C99”(二)...
  10. 通过深挖Clickhouse源码,数据去重精通~