Oh My Posh
是一个适用于任何 shell 的自定义提示引擎,能够使用函数或变量调整提示字符串。
文章目录
- 一、安装oh-my-posh
- 二、安装Nerd 字体
- 三、oh-my-posh 初始化
- 四、更换主题
一、安装oh-my-posh
GitHub repo:https://github.com/JanDeDobbeleer/oh-my-posh
website:https://ohmyposh.dev/
按照docs指导安装即可(或者使用github的release):https://ohmyposh.dev/docs/installation/windows
以Windows Power shell为例,使用winget安装,是最新版本19.18.1,和github release最新版本一致。
winget install JanDeDobbeleer.OhMyPosh -s winget
重新打开终端,输入oh-my-posh 即可看到相关信息,以及一些命令选项。如果报错,可能需要手动将oh-my-posh的路径添加到环境变量。(通常不用这一步)
$env:Path += ";C:\Users\user\AppData\Local\Programs\oh-my-posh\bin"
二、安装Nerd 字体
oh-my-posh
使用的是Nerd字体:
“Nerd Font” 是一种特殊的字体,专门设计用于编程和终端应用程序。这些字体包含了许多常用的图标、图形和符号,比如各种编程语言的图标、文件类型图标、Git 分支标识符等。这些额外的符号和图标使得在代码编辑器、终端或其他文本界面中显示更加丰富和有趣。
网站:https://www.nerdfonts.com/
你可以浏览所有字体,选择你喜欢的下载(oh-my-posh推荐的是Meslo LGM NF这个字体,你选择你喜欢的即可),然后安装这些ttf文件(右键安装)即可。
或者使用oh-my-posh的命令,选择一个字体,然后会自动下载和安装。
oh-my-posh font install --user
确保正确渲染,设置中打开:Use the new text renderer (“AtlasEngine
”)
选择你安装的Nerd字体:
三、oh-my-posh 初始化
(创建并)编辑power shell的配置文件。
编辑:
notepad $PROFILE
如果没有,则先创建:
New-Item -Path $PROFILE -Type File -Force
新建配置文件后,重新打开power shell可能显示无法打开配置文件,将 PowerShell 设置为仅要求使用 来签署远程脚本,以管理员身份打开powershell运行:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine
即可。
现在可以在配置文件中添加如下内容,用来初始化power shell的oh-my-posh:
oh-my-posh init pwsh | Invoke-Expression
重新打开power shell就可以看到使用了默认的主题:
四、更换主题
上面默认的主题是嵌入在oh-my-posh 中的。如果你需要更换其它主题,可以去网站浏览也可以使用命令查看(初始化之后才能使用下面的命令):
Get-PoshThemes
(命令的最后一行会告诉你本地主题配置文件的所在目录。)
在网站上浏览:https://ohmyposh.dev/docs/themes#1_shell
这些主题通常都已经默认下载了,位于:
C:\Users\14134\AppData\Local\Programs\oh-my-posh\themes
你只需要启用它们即可,编辑power shell的配置文件并修改oh-my-posh的init那一行即可:
notepad $PROFILE
将jandedobbeleer
换成你喜欢的主题名称即可:
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH/jandedobbeleer.omp.json" | Invoke-Expression
如果你要修改一个主题的某个样式,可以复制那个主题文件并修改即可,但修改后不要放在原来的位置,以免更新的时候被覆盖(同时修改init的路径即可)。
也可以使用命令导出当前主题的json文件进行修改:
oh-my-posh config export --output ~/.mytheme.omp.json
另一种更换主题的方式是使用在线主题配置文件:
oh-my-posh init pwsh --config 'https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/jandedobbeleer.omp.json' | Invoke-Expression
其它命令行工具和操作系统,以及更多自定义操作,自己看官网即可。
卸载:
Uninstall-Module oh-my-posh -AllVersions