快速在Terminal上配置oh-my-posh和clink美化powershell和cmd
IllusionRAII
2022年12月13日 18:49
收录于文集
共2篇

给新的工作环境重新配置一遍命令行和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&#​34;: {}中添加以下:

代码块
JavaScript
自动换行
复制代码
"font":
{
	"face": "MesloLGM NF"
}
复制成功

  如果你的Terminal是在打开的状态,那么保存更改的内容后应该能立即在Terminal中看到效果。

  

     4.安装oh-my-posh:

  打开微软商店搜索oh-my-posh安装或浏览器访问ms-windows-store://pdp/?productid=XP8K0HKJFRXGCK     或者使用winget

代码块
Ruby
自动换行
复制代码
winget install JanDeDobbeleer.OhMyPosh -s winget
复制成功

    打不开微软商店?避坑第3条。  至此oh-my-posh安装完毕。在cmd或powershell中输入oh-my-posh回车即可看到使用帮助。显示不是内部命令什么什么的?给安装目录的bin文件夹加个环境变量即可。

    5.美化(必须使用PowerShell进行配置!必须使用PowerShell进行配置!!必须使用PowerShell进行配置!!!cmd的在后面,别急!!!!)

    在powershell中执行notepad $PROFILE打开配置文件。在打开的文件中输入

代码块
Ruby
自动换行
复制代码
oh-my-posh init pwsh | Invoke-Expression
复制成功

保存;或者直接使用命令代替上面的操作:

代码块
Ruby
自动换行
复制代码
Set-Content $env:HOMEPATH\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1 ‘oh-my-posh init pwsh | Invoke-Expression’
复制成功

    若提示“系统找不到路径”,先在%HOMEPATH%\Documents\(即“文档”)下创建名为WindowsPowerShell的目录,再执行

代码块
Ruby
自动换行
复制代码
notepad $PROFILE
复制成功

它会提示你找不到文件,此时选择创建即可;或者改用命令代替上面的操作:

代码块
Ruby
自动换行
复制代码
mkdir "$env:HOMEPATH\Documents\WindowsPowerShell"; Set-Content $env:HOMEPATH\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1 ‘oh-my-posh init pwsh | Invoke-Expression’
复制成功

  重启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文件夹内创建,所以建议先在别的地方创建,编辑完后复制过去。

在文件中添加内容

代码块
clike
自动换行
复制代码
load(io.popen('oh-my-posh init cmd'):read("*a"))()
复制成功

并保存。

重启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中一样,是转义字符,如需表示单个\则需要输入两个\,即如此

代码块
clike
自动换行
复制代码
--config="C:\\Users\\13913\\AppData\\Local\\Programs\\oh-my-posh\\themes\\easy-term.omp.json"
复制成功

直接用正斜杠/呢?当然可以,只要不是单个反斜杠

保存后重启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:

  1.     在Windows11的环境下

    1. 直接右键桌面,在右键菜单中选择“在Terminal中打开“即可呼出Windows Terminal。

    2. (要是右键菜单没有呢?)在搜索框,或者直接点任务栏的“开始按钮”,输入Apps: 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)

我恨排版