使用 oh-my-posh 美化 windows terminal,让其接近oh-my-zsh

2023-05-16

🚀 优质资源分享 🚀

学习路线指引(点击解锁)知识定位人群定位
🧡 Python实战微信订餐小程序 🧡进阶级本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。
💛Python量化交易实战💛入门级手把手带你打造一个易扩展、更安全、效率更高的量化交易系统

本文旨在快速让你进行美化,少踩一些坑,原文出自我的博客:prettier-windows-terminal-with-oh-my-posh

为了同 iterm2 下的 oh-my-zsh 保持基本一致,博主用的是 aliens 主题+一些自定义配置调整,最终效果如下,你也可以根据自己需要进行细调

  • 如果你闲麻烦,或者想跟我用一样的,文末会给出主题配置,直接拿去用即可。
  • 效果图:

版本说明:

  • 本文撰写时:
    • oh-my-posh 版本为 v7.87.0
    • powershell 的版本为 7.2.3,(最新为 7.2.4)
    • OS:win10,21H1,19043.1706

注意事项:

1. 安装时请关闭杀毒软件、各类管家,否则写入注册表时会报错。
2. 有条件的请挂代理,因为源文件在 git 上。
3. 全程在 powershell ,管理员模式 下进行。

安装 windows terminal:

可直接在 microsoft store 中搜索安装。这里不赘述。

  • 直达链接:https://www.microsoft.com/store/productId/9N0DX20HK701

安装 powershell@latest

官网:https://docs.microsoft.com/zh-cn/powershell/scripting/install/installing-powershell-on-windows?view=powershell-7.2

  • 你的系统中,powershell 可能不是新版,一样弄,强烈建议使用最新版本的 powershell。
    • 因为新版会增加不少工具包,如 Test-Path 等,可以省去不少自己去各类安装包的麻烦。也可以减少、避免不必要的安装错误。

安装 gsudo

如其名,为了在 windows 下使用 sudo 命令,需要安装该包。
git 地址:https://gerardog.github.io/gsudo/docs/install

可以直接在 powershell 中执行以下命令进行安装:

winget install gerardog.gsudo

  • 会自动注册到 path,所以你可以直接在命令行中全局使用:
# 示例:以管理员身份启动 powershell
gsudo powershell.exe

如果你觉得 gsudo 不够直观,希望用 sudo,可以通过以下方式重命名:

Set-Alias 'sudo' 'gsudo'

安装 oh-my-posh

官方:https://ohmyposh.dev/
git 地址:https://github.com/jandedobbeleer/oh-my-posh

winget install oh-my-posh

  • 以上命令会安装 oh-my-posh.exe 以及最新的主题。

安装 Nerd Fonts

oh-my-posh 的不少主题都是依赖于该字体,否则部分 icon 会乱码,建议安装。

  • Nerd Fonts 官网
  • 博主安装的是这套字体,也是官方推荐的字体:Meslo LGM NF。

windows terminal 配置

启动 shell 设置为 powershell 7

以管理员权限启动 shell

在 windows terminal 的设置中,打开JSON文件:

编辑配置:

  • 只要安装了 powershell 7,默认情况下 pwsh 就会指向 powershell 7。
  • 如果你没有给 gsudo 添加 sudo 别名的话,这里用 gsudo

设置 powershell 7 字体为 Nerd fonts

配置启动时加载 oh-my-posh

创建 powershell 配置文件:

if (!(Test-Path -Path $PROFILE )) { New-Item -Type File -Path $PROFILE -Force }

用记事本打开配置文件

notepad $PROFILE

在记事本中录入以下指令

oh-my-posh init pwsh --config ~/.leon.omp.theme.json | Invoke-Expression

  • 每次启动 shell 时 ,会先执行以上命令以加载主题等配置。
  • 其中 “–config ~/.leon.omp.theme.json” 是你的文件和所在路径,文末我会放出我的配置。
  • 你可以在 这里 找到不同的主题。

快捷键设置:

习惯了 iterm2 中 CMD+D,SHIFT+CMD+D 来拆分窗口,很庆幸 windows terminal 已经提供了快捷键修改,且针对的就是拆分窗口,直接设置即可,如下:

.leon.omp.theme.json

{
  "$schema": "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json",
  "blocks": [
    {
      "alignment": "left",
      "segments": [
        {
          "background": "#61AFEF",
          "foreground": "#ffffff",
          "leading\_diamond": "\ue0b6",
          "style": "diamond",
          "template": "{{ .HostName }} ",
          "trailing\_diamond": "\ue0b0",
          "type": "session"
        },
        {
          "background": "#C678DD",
          "foreground": "#ffffff",
          "powerline\_symbol": "\ue0b0",
          "properties": {
            "style": "full"
          },
          "style": "powerline",
          "template": " {{ .Path }} ",
          "type": "path"
        },
        {
          "background": "#95ffa4",
          "foreground": "#193549",
          "powerline\_symbol": "\ue0b0",
          "style": "powerline",
          "template": " {{ .HEAD }} ",
          "type": "git"
        },
        {
          "background": "#FF6471",
          "foreground": "#ffffff",
          "leading\_diamond": "\ue0b0",
          "style": "diamond",
          "template": " {{ if .Error }}{{ .Error }}{{ else }}{{ if .Venv }}{{ .Venv }} {{ end }}{{ .Full }}{{ end }} ",
          "trailing\_diamond": "\ue0b4",
          "type": "python"
        }
      ],
      "type": "prompt"
    }
  ],
  "final\_space": true,
  "version": 2
}

  • 属性说明你可以从 这里 了解。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 oh-my-posh 美化 windows terminal,让其接近oh-my-zsh 的相关文章

随机推荐

  • npm WARN npm npm does not support Node.js v14.16.0 npm WARN npm You should probably upgrade to a new

    npm WARN npm npm does not support Node js v14 16 0 npm WARN npm You should probably upgrade to a newer version of node a
  • 毕业设计 - 题目 :基于大数据的疫情数据分析及可视化系统

    文章目录 1 前言2 开发简介3 数据集 weibo json 新浪微博实时热搜前50的数据ProvinceData json 省市疫情详情 4 实现技术 4 1 系统架构4 2 开发环境4 3 疫情地图 4 3 1 填充图 Choropl
  • Qt知识点梳理 —— 获取设备CPU,java技术栈

    WMIC指令 在Windows环境下 xff0c 我们可以通过使用WMIC获取设备的硬件信息 xff0c 如下 xff1a wmic cpu get Name 获取CPU名称 wmic cpu get NumberOfCores 获取CPU
  • 语音识别的资料

    关于语音识别 xff0c 目前搜索到的帖子基本都是在介绍算法和模型 xff0c 对于如何实现工程化交付 xff0c 资料比较少 语音识别业务的笔记 xff0c 来源于我自己亲历项目后的总结 介绍算法和模型的资料 xff0c 如下 xff1a
  • 启动HadoopHDFS

    在配置了Hadoop之后 xff0c 要进行启动 启动HDFS 第一次执行的时候一定要格式化文件系统 xff0c 后面不要重复执行 在hadoop的bin目录下 hdfs namenode format 说明格式化成功了 此时在tmp目录下
  • IDEA中Maven依赖下载失败的解决方法

    问题背景 xff1a 在日常开发的过程中 xff0c 拉取别人的项目 xff0c 或者新建项目在pom文件中添加依赖时 xff0c 很多小伙伴肯定都遇到过如下图所示的依赖下载失败的情况 xff0c 我也是遇到过很多次了 xff0c 在这里把
  • mac 安装完anaconda后找不到tensorflow包,pip install 无效

    一 问题 重新安装完anaconda后 在jupyter里安装tensorflow包出现错误 xff1a pip install tensorflow Could span class token keyword not span find
  • TYUT太原理工大学2022操作系统学习通总结

    第1章 选择 xff08 高级程序设计语言的编译器 xff09 不是操作系统关心的主要问题多道批处理系统的主要缺点是 xff08 缺少交互性 xff09 在操作系统中 xff0c xff08 进程通信服务例行子程序 xff09 部分属于微内
  • mariaDB安装

    打开mariaDB官网 官网地址 xff1a https mariadb org 点击DownLoad后跳转到如下界面 在该界面下选择MariaDB Repositories xff0c 然后根据自己的需求选择mairadb要装在什么系统下
  • 2021-07-10

    标题SQL sever基础语法 语法简介 xff1a l Create database 数据库名 xff1b l Use database 数据库名 xff1b l SQL对字母大小写不敏感 xff1b l 文本或字符串用单引号 xff1
  • Linux的基本操作(1)

    Linux的基本操作 xff08 1 xff09 1 1登录方式 1 远程登录 Linux允许同一用户在不同的控制台上以相同的身份或不同身份多次登录 xff0c 同时进行多项工作 各控制台上的交互过程石相互独立的 Login 账号 cher
  • 快速记忆常用排序

    选泡插 xff0c 快归堆希桶计基 xff0c 恩方恩老恩一三 xff0c 对恩加k恩乘k xff0c 不稳稳稳不稳稳 xff0c 不稳不稳稳稳稳
  • ssh常用命令50条

    SSH xff08 Secure Shell xff09 是一种用于远程登录 数据传输和命令执行的安全协议 下面列举了 SSH 命令的一些常见用法 xff1a 连接到远程主机 xff1a ssh username 64 hostname 其
  • Kail虚拟机的安装教程

    本指南是关于在 VMware 内部虚拟化 Kali Linux xff0c 让您拥有 Kali VM 这是使用 Kali 的好方法 xff0c 因为它与主机完全分离 xff0c 允许您与其他虚拟机 xff08 以及主机和网络上的其他机器 x
  • JDBC Connection Reset问题分析

    2014年 7 月 13 日 半年前开始 xff0c 项目组测试MM 在验证功能时 xff0c 经常报怨讲测试环境上的应用在启动时很慢 xff0c 偶尔会报失败 xff0c 遇到类似问题多数情况下重新启动一次就可以启动成功 xff0c 但少
  • 安卓DataBinding出现ActivityMainBinding类不存在

    安卓中并不存在ActivityMainBinding这个类 xff0c 这个类是在XML布局的最外层加入 lt layout gt lt layout gt 就会自动生成 如果你的XML布局的名字叫做 34 activity main 34
  • Ubuntu18.04配置交叉编译器,解压安装以后无法查到编译器的版本号

    在进行嵌入式linux开发时 xff0c 有时需要安装特定交版本的交叉编译器 xff0c 这就需要我们手动安装 xff0c 在解压安装安好并且设置了路径 xff0c 我们会发现查不到编译器的版本号 xff0c 也就是仍然无法使用交叉编译器
  • MySQL万字精华总结!你连基础的JVM运行时内存布局都忘了?含面试题+答案

    前言 Netty 是一款基于 Java 的网络编程框架 xff0c 能为应用程序管理复杂的网络编程 多线程处理以及并发 Netty 隐藏了样板和底层代码 xff0c 让业务逻辑保持分离 xff0c 更加易于复用 使用 Netty 可以得到一
  • 获取Spring中@PathVariable注解里带点的完整参数

    x1f680 优质资源分享 x1f680 学习路线指引 xff08 点击解锁 xff09 知识定位人群定位 x1f9e1 Python实战微信订餐小程序 x1f9e1 进阶级本课程是python flask 43 微信小程序的完美结合 xf
  • 使用 oh-my-posh 美化 windows terminal,让其接近oh-my-zsh

    x1f680 优质资源分享 x1f680 学习路线指引 xff08 点击解锁 xff09 知识定位人群定位 x1f9e1 Python实战微信订餐小程序 x1f9e1 进阶级本课程是python flask 43 微信小程序的完美结合 xf