当前位置: 首页 > news >正文

【软件相关】基于oh-my-posh美化PowerShell7

文章目录

  • 0 前言
  • 1 首先说说原理
  • 2 再来说说方法
  • 3 oh-my-posh
    • 3.1 软件储备
    • 3.2 下载安装oh-my-posh
    • 3.3 安装字体
    • 3.4 配置profile文件
  • 4 手搓profile代码
  • 5 其他
    • 5.1 powershell7样式显示不正常
    • 5.2 能不能美化Windows powershell?
    • 5.3 VS Code美化

0 前言

  今天心血来潮,突然想美化一下自己电脑上的powershell,虽然之前也一直有所耳闻,但感觉有点复杂,因此也一直未实践,后来发现这个问题似乎比我想象中要简单一点,因此设置完就顺便记录一篇博客。

1 首先说说原理

  不管是Windows Power Shell还是最新的Power Shell7,美化的逻辑都是一样的,那就是这个程序在点开前会运行一段代码,这段代码的作用就是配置窗口的显示,因此想要美化界面,就需要去修改这个配置文件。
  那配置文件在哪呢?默认应该是找不到的。可以在终端输入
code $profile(要求安装VS Code并添加到环境变量)或者notepad $profile(用自带的记事本打开),就会自动打开一个后缀为.ps1的文件:

在这里插入图片描述

因此,不管前面做什么准备,都是为了最后修改这个文件。

2 再来说说方法

  明白了原理,接下来就是修改这个profile文件的方法,一般来说(我所知道的)主要是两种:①查阅Power Shell修改配置文件的命令,然后再形成程序,写到profile文件当中;②下载第三方的软件,通过第三方软件导入大佬们做好的样式,俗称“白嫖”。
  第一种方式的优点显而易见,那就是不用下载额外的软件,只需要修改代码即可,但是比较麻烦,而且要不断尝试;第二种就是简单,但是要付出硬盘空间的代价(也不是特别大,精简点30M能解决)。

  由于我比较懒,不愿意去一行一行敲代码并不断尝试,因此我这里使用第二种“白嫖”的方式。

后面会简单介绍第一种方式,愿意探索的小伙伴可以试试

3 oh-my-posh

  上面提到的第三方软件就是大名鼎鼎的oh-my-posh了,关于这方面的教程呢,网上有非常多,但个人感觉有很多都过时了,包括安装方法和设置等,建议最好是找近一年的教程(2022+)。

oh-my-posh doc

  关于oh-my-posh doc的使用,我的建议是直接看上面的文档,内容会细致一点,当然不愿意看英文想速成的也可以继续看下去。

3.1 软件储备

  • PowerShell7:这个毫无疑问,是今天的主角,没装这个的估计也不会翻到这篇blog。
  • Windows Terminal:现代终端,不装这个很多样式显示不出来。不仅是这个,它还可以集成多个终端到一起,如cmd,Windows Power Shell,Power Shell7,Git Bash等。当然,在本教程中,它的主要作用还是显示设置的样式。这个可以直接在微软商店下载

3.2 下载安装oh-my-posh

  有了上述的软件之后,接下来就可以开始搞oh-my-posh了,首先是下载安装,本着尽量少下载软件的原则,这里不用安装任何软件,直接在终端输入官网提供的下载命令:

Set-ExecutionPolicy Bypass -Scope Process -Force; Invoke-Expression ((New-Object System.Net.WebClient).DownloadString('https://ohmyposh.dev/install.ps1'))

等待安装完毕后,不妨检查一下环境变量:

在这里插入图片描述

在这里插入图片描述

可以发现软件在安装过程中自动添加了一个POSH_THEMES_PATH环境变量,在Path中也添加了bin目录的路径,这个很重要,因为如果后面出现命令无法识别的报错,那大概率是环境变量还没有刷新,需要重启终端甚至重启电脑。

3.3 安装字体

  为了使得样式能够正常显示,还需要在电脑上安装一些字体。主要是Nerd Font字体,简称NF字体。这个oh-my-posh官网也有提供下载链接。
在这里插入图片描述

下载得到的压缩包解压后会发现有很多字体,但实际并不需要这么多(想省事可以直接全部安装),可以打开Everything对字体文件夹进行检索:

在这里插入图片描述

只需要安装这几个字体即可,安装完会得到一个字体名称为MesloLGM NF的字体,后面需要使用到这个字体。

3.4 配置profile文件

  安装好软件和对应的字体之后,最后就是配置powershell7的样式了,和前面提到的原理部分一样,只需要修改对应的profile文件即可。
  先用VS Code打开profile文件code $profile,此时会打开一个空白文件,实际是新建了一个空白文件,安装好oh-my-posh的话,只需要一行代码即可。

oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH/jandedobbeleer.omp.json" | Invoke-Expression

其中,$env:POSH_THEMES_PATH部分就是前面提到的环境变量,如果不想用这个,也可以直接换成json文件的绝对路径。

  这行代码的主要作用就是引用前面提到的oh-my-posh安装时自带的很多现成的样式文件,如果觉得这个不好看还可以换成别的——只需要替换json文件名即可。样式的效果预览可以参考oh-my-posh的官网给出的图片。

4 手搓profile代码

  这部分主要是提供一个手搓profile代码的参考。这部分的资料主要也是来自官网,有兴趣的可以仔细看看。

  • Set-PSReadLineOption——可以用来设置命令和参数等的颜色
  • function prompt——关于这个的资料很少

5 其他

5.1 powershell7样式显示不正常

  设置完powershell样式之后,会发现似乎显示效果并没有预览得那么好看,这是正常的,这也是为什么前面提到必须要安装Windows Terminal,因此建议不要再单独打开powershell7,直接打开Windows Terminal即可。

5.2 能不能美化Windows powershell?

  以上的修改都是针对powershell7,不过前面也提到,在Windows powershell中也可以修改profile文件,那能不能也设置成同样的样式呢?
  很遗憾的是,并不能,以下是我的尝试结果:

在这里插入图片描述

显然,修改完profile之后,会报错说系统禁止加载这个文件,这个问题也可以解决,只需要修改执行策略即可,具体做法建议参考官网。

5.3 VS Code美化

  由于VS Code中可以设置默认终端为PowerShell7,因此只要设置好能够在Windows Terminal正常显示,理论上VS Code显示也没有问题。不过需要先设置一下字体,就是上面提到的那个字体——MesloLGM NF

在这里插入图片描述

相关文章:

  • ChatGPT前传
  • 二叉树结构的实现
  • 技术分享——Java8新特性
  • JavaScript获取img的原始尺寸
  • extjs动态修改grid列表中的行数据
  • [数据结构]二叉树OJ(leetcode)
  • Java容器类详解(Collection与Map,含多线程性能对比)
  • 项目文件的组织方式
  • 系统集成路由器OSPF动态、综合路由配置
  • windows搭建ftp服务器、抓取虚拟机数据包、局域网流量监听
  • 数值分析——求积公式
  • php模拟文件上传使用curl向远程服务器上传文件,php将图片转成二进制文件进行请求接口上传
  • 【大数据之Hadoop】三、HDFS概述及组成框架
  • MapReduce数据倾斜产生的原因及其解决方案
  • docker开启的Mysql修改时区
  • 完成首选项
  • 【C语言进阶】自定义类型之结构体,枚举和联合
  • springboot校友社交系统
  • 【Python算法】简单深搜练习
  • ASO优化之应用商店中的A/B测试——改良版
  • 电加热油锅炉工作原理_电加热导油
  • 大型电蒸汽锅炉_工业电阻炉
  • 燃气蒸汽锅炉的分类_大连生物质蒸汽锅炉
  • 天津市维修锅炉_锅炉汽化处理方法
  • 蒸汽汽锅炉厂家_延安锅炉厂家
  • 山西热水锅炉厂家_酒店热水 锅炉
  • 蒸汽锅炉生产厂家_燃油蒸汽发生器
  • 燃煤锅炉烧热水_张家口 淘汰取缔燃煤锅炉
  • 生物质锅炉_炉
  • 锅炉天然气_天燃气热风炉