Oh My Posh: 让命令行不再单调

Oh My Posh是什么

一个跨平台、无关shell的命令提示符渲染器。支持WindowsmacOSLinux,可应用于zshbashpowershellfish等各种shell。

你或许正在使用Oh My Zsh,两者都可以美化、增强命令行,但侧重点不同:

  • Oh My Zsh是针对zsh的配置框架,提供了丰富的主题,另外插件系统也非常强大,有上百个开箱即用插件,还有很多第三方插件,让zsh使用起来更便捷高效
  • Oh My Posh是专注于命令提示符美化的工具,让提示符更加醒目,展现更多信息

安装

sh 复制代码
# Windows
winget install JanDeDobbeleer.OhMyPosh -s winget

# macOS & Linux
brew install jandedobbeleer/oh-my-posh/oh-my-posh

macOS和Linux上推荐使用Homebrew安装,Windows上使用winget安装如果报错可参考:0x8a15000f : Data required by the source is missing,如果是使用的WSL,则按照Linux的安装流程使用Homebrew即可。

安装命令会做两件事:

  1. 下载安装执行文件,Windows上是oh-my-posh.exe,macOS和Linux上是oh-my-posh二进制文件,并添加到环境变量中
  2. 下载所有最新主题

设置主题

我们已经安装了oh-my-posh,执行oh-my-posh get shell查看当前使用的shell,如果是Linux、macOS或WSL也可使用echo $SHELL查看。

后续操作全都基于macOS,Windows上使用powershell操作步骤大同小异。

这边以zsh为例如何设置prompt主题:

  1. 执行nvim ~/.zshrc,将eval "$(oh-my-posh init zsh)"添加到配置文件中,保存退出
  2. 执行exec zshsource ~/.zshrc重新加载配置

执行完毕可以看到命令提示符样式已发生变化。

如果是使用bash,将eval "$(oh-my-posh init bash)添加到.bashrc.profile.bash_profile中,然后执行source ~/.bashrc重载配置文件。

修改主题

Oh My Posh开箱即用的主题非常多,任选一个主题给命令行增添些样式,谁不爱高颜值,命令行亦是。

在安装步骤中提到过,除了下载可执行文件外,也下载了主题文件,存放在oh-my-posh的themes目录下。

想要设置哪个主题,只需通过--config指定主题完整路径即可。

sh 复制代码
eval "$(oh-my-posh init zsh --config $(brew --prefix oh-my-posh)/themes/xxx.omp.json)"

xxx即主题页面中每个主题左上角对应的名称。

编辑.zshrc后保存,source ~/.zshrc重新加载配置文件。

修改前后

到此即可在终端中可以看到已设置的提示符主题,但提示符中的icon无法显示,需要安装并选择指定字体才能正确加载icon。

正确加载icon

很多主题都含有icon,为了能正确加载这些icon,需要使用Nerd Fonts字体,因为Oh My Posh被设计为使用该字体,使用其他字体icon无法加载。

Nerd Fonts有很多子字体,我个人下载的JetBrainsMono Nerd Font,大家可根据自己喜好下载,下载完成后安装,接着去到终端将字体设置为下载的字体,我使用的终端是Warp

如果是使用vscode的终端,在vscode设置中设置相应字体即可。

安装并指定字体后icon可以正常显示。

总结

使用Oh My Posh设置主题就挺简单的几个步骤:

  1. 根据OS下载安装
  2. 根据使用的shell将配置添加到配置文件中,并重载配置文件
  3. 安装Nerd Fonts任意一子字体,设置终端或编辑器字体为对应字体

尾语

使用Oh My Posh目的为了美化命令行提示符,展示更多信息。它跨平台,支持任何shell,从安装到修改主题都简单易懂,字体需要注意一下,该字体除了能显示提示符里的icon,文件icon也可以。

其他OS或并非使用zsh的同学可以访问下方链接按照官方文档,操作大同小异。

Windows用户使用winget安装可能会遇到安装错误情况,解决方案可参考0x8a15000f : Data required by the source is missing

除了开箱即用的主题外也可以自己设计主题并发布,感兴趣可以一试。

地址

Oh My Posh

相关推荐
watl09 分钟前
【Android】unzip aar删除冲突classes再zip
android·linux·运维
赵大仁44 分钟前
在 CentOS 7 上安装 Node.js 20 并升级 GCC、make 和 glibc
linux·运维·服务器·ide·ubuntu·centos·计算机基础
vvw&1 小时前
Docker Build 命令详解:在 Ubuntu 上构建 Docker 镜像教程
linux·运维·服务器·ubuntu·docker·容器·开源
冷曦_sole1 小时前
linux-21 目录管理(一)mkdir命令,创建空目录
linux·运维·服务器
最后一个bug1 小时前
STM32MP1linux根文件系统目录作用
linux·c语言·arm开发·单片机·嵌入式硬件
dessler2 小时前
Docker-Dockerfile讲解(二)
linux·运维·docker
卫生纸不够用2 小时前
子Shell及Shell嵌套模式
linux·bash
world=hello2 小时前
关于科研中使用linux服务器的集锦
linux·服务器
bkspiderx2 小时前
Xshell 和 Xftp 更新提示问题的解决方法及分析
bash·shell·xshell·xftp·破解版本更新
soragui2 小时前
【ChatGPT】OpenAI 如何使用流模式进行回答
linux·运维·游戏