快速在Terminal上配置oh-my-posh和clink美化powershell和cmd
给新的工作环境重新配置一遍命令行和PS,想起之前踩的坑,刚好这次记录下来分享一下。
先放下成品图


系统环境:
OS Name: Microsoft Windows 11 Pro
OS Version: 10.0.22623 N/A Build 22623
OS Manufacturer: Microsoft Corporation
OS Configuration: Standalone Workstation
OS Build Type: Multiprocessor Free
正常步骤:
1.下载字体:
地址:https://github.com/ryanoasis/nerd-fonts/releases/download/v2.1.0/Meslo.zip(Github)
如果此步就踩坑,请阅读下面“避坑:的第1条。
2.解压安装字体

3.配置Windows Terminal的字体:
打开Windows Terminal
如果你不知道怎么打开,请阅读下面“避坑”的第2条。
在Windows Terminal中按下快捷键 CTRL + SHIFT + ,(选择使用一个文本编辑器打开),为"defaults": {}中添加以下:

如果你的Terminal是在打开的状态,那么保存更改的内容后应该能立即在Terminal中看到效果。
4.安装oh-my-posh:
打开微软商店搜索oh-my-posh安装或浏览器访问ms-windows-store://pdp/?productid=XP8K0HKJFRXGCK
或者使用winget:
打不开微软商店?避坑第3条。
至此oh-my-posh安装完毕。在cmd或powershell中输入oh-my-posh回车即可看到使用帮助。显示不是内部命令什么什么的?给安装目录的bin文件夹加个环境变量即可。
5.美化(必须使用PowerShell进行配置!必须使用PowerShell进行配置!!必须使用PowerShell进行配置!!!cmd的在后面,别急!!!!):
在powershell中执行notepad $PROFILE打开配置文件。在打开的文件中输入
保存;或者直接使用命令代替上面的操作:
若提示“系统找不到路径”,先在%HOMEPATH%\Documents\(即“文档”)下创建名为WindowsPowerShell的目录,再执行
它会提示你找不到文件,此时选择创建即可;或者改用命令代替上面的操作:
重启powershell,即可看见oh-my-posh已生效。
6.改变主题:
执行Get-PoshThemes查看可用主题(上面的是主题名,下面的是主题效果展示)

留意命令最后给出的主题储存路径Themes location,这个路径至关重要

再次执行notepad $PROFILE进行配置:
在oh-my-posh init pwsh 后空格,加上--config 刚刚得到的储存路径\主题名.omp.json。 例如我的路径是C:\Users\13913\AppData\Local\Programs\oh-my-posh\themes\,要使用easy-term这个主题,那么我需要添加:
--config C:\Users\13913\AppData\Local\Programs\oh-my-posh\themes\easy-term.omp.json

保存之后重启powershell可见新主题已经生效


MILESTONE
通过clink加载lua脚本让cmd实现显示oh-my-posh的风格

1.当然,安装clink:https://github.com/chrisant996/clink/release
2.在clink的安装目录(一般是C:\Program Files (x86)\clink)中创建文件oh-my-posh.lua
其实一般来说除了文件夹,别的文件都没法在Program Files文件夹内创建,所以建议先在别的地方创建,编辑完后复制过去。
在文件中添加内容
并保存。
重启cmd即可看到oh-my-posh(或者说是clink?)在cmd中生效了。
那要更改cmd中的oh-my-posh的主题要如何呢?
还是那个oh-my-posh.lua文件,在oh-my-posh后加上--config=“主题文件路径”(在上面给powershell的更换主题一样)。例如还是那个easy-term主题,则添加--config="C:\Users\13913\AppData\Local\Programs\oh-my-posh\themes\easy-term.omp.json",对吧?
没用?之前配置好的还直接失效了?大坑:不要把资源管理器中复制到的地址粘贴到lua直接使用!因为lua中的反斜杠\,和在c中一样,是转义字符,如需表示单个\则需要输入两个\,即如此
直接用正斜杠/呢?当然可以,只要不是单个反斜杠

保存后重启cmd即可看到效果了

添加了clink的cmd也多了一些功能,其中我觉得最有用的应该就是命令自动补全了和历史命令了。

避坑部分
1.下载字体:以下均使用7z(LZMA2)重新打包为高压包。如果阁下没有不知道怎么去解压7z文件,我建议阁下暂时不要玩cmd和powershell美化这种东西(无恶意)。
以防Github打不开:https://files.illusionrealm.com/s/mJFb(私有云分流Onedrive)
以防私有云Cloudflare打不开:https://pan.baidu.com/s/19VZmbaB6DcSMw6sAtzJGng?pwd=0000(百度云分流)
以防百度云限速或掉资源:https://wwa.lanzouw.com/iTTwo0ikfhja
如果以上都打不开的话,我暂时没有别的办法,阁下可以发邮件到authurvir@illusionrealm.com请求文件(或者换个网络,开个流量什么的)。
2.打开Windows Terminal:
在Windows11的环境下
直接右键桌面,在右键菜单中选择“在Terminal中打开“即可呼出Windows Terminal。
(要是右键菜单没有呢?)在搜索框,或者直接点任务栏的“开始按钮”,输入Apps: Windows Terminal即可看到应用

(可选-仅限Windows11)设置Windows Terminal为默认终端应用:
点击终端顶部栏的那个向下的小箭头。点击弹出来的下拉菜单中的“设置”即跳转到设置页面。

在设置界面中,将默认终端应用程序中的Windows Console Host改为Windows Terminal后点击右下的保存即可。
都没有?那你可能在使用Windows10并且在比较老的Build上,或者精简化的操作系统,我猜是?
2. 在Windows10的环境下
只说一下如果没有Windows Terminal的话要如何安装:
微软商店搜索并安装
https://apps.microsoft.com/store/detail/windows-terminal-preview/9N8G5RFZ9XK3?hl=zh-cn&gl=cn
https://github.com/microsoft/terminal/releases(要看清楚哦,分Win10和Win11的版本)
能打开github或微软商店的话,不推荐分流。分流版本不会更新,可能会滞后非常多
以防两个都打不开:(Win10):https://files.illusionrealm.com/s/2BuP (Win11):https://files.illusionrealm.com/s/g1Un(私有云分流)
以防私有云也打不开:https://wwa.lanzouw.com/b00qgot2d 密码:775r(蓝奏分流,为符合上传要求已压缩,使用前需解压)
3.oh-my-posh其它下载:
Github:https://github.com/JanDeDobbeleer/oh-my-posh/releases/
能打开github或微软商店的话,不推荐分流。分流版本不会更新,可能会滞后非常多
私有云分流:https://files.illusionrealm.com/s/z3HZ
蓝奏云分流:https://wwa.lanzouw.com/iy3uH0ikmvbi
还有什么坑欢迎留在评论区哦

参考文档:
https://ohmyposh.dev/docs/installation/windows(官方文档)
https://learn.microsoft.com/en-us/windows/terminal/install(安装Windows Terminal)
我恨排版