当前位置: 代码迷 >> 综合 >> 「环境工具」 PowerShell终端(Windows Terminal)美化
  详细解决方案

「环境工具」 PowerShell终端(Windows Terminal)美化

热度:98   发布时间:2023-12-07 05:31:47.0

一提起PowerShell,命令提示符等等,想到的就是丑、难用,非常丑:

各位可以先感受一下。

不过,现在我们可以对它做一个美化,美化后的效果如下,各位也可以感受下(本人不提供背景图)

 
下面做简单记录

 

1、必备软件

需要两个软件:

1.1 PowerShell7

虽然电脑自带PowerShell,但是太旧了,微软已经将PowerShell作为一个开源项目了,最新的PowerShell版本为7.0.1

下载地址:https://github.com/PowerShell/PowerShell/releases

1.2 Windows Terminal

相当于PowerShell的客户端,或者说是衣服。可以将包括PowerShell在内的很多东西集成进来。

Windows Terminal 1.0正式版也是在前几天,大概5月20日发布的。

相关文档可以访问:https://docs.microsoft.com/zh-cn/windows/terminal/get-started,

下载于安装可以直接在Win10 Store中找到。

 

2、基本设置

这里首先要将Windows Terminal的默认PowerShell改为新的7.0.1

点击设置

在打开的setting.json文件中,修改powershell对应的部分即可。(也可以新建一个,但要注意要唯一的GUID)

修改设置内容如下,供参考,可根据个人喜好进行其他设置。

{// Make changes here to the powershell.exe profile"guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",//要显示的标签名称"name": "PowerShell7",//安装的PowerShell7.0.1的pwsh.exe文件位置"commandline": "C:\\Program Files\\PowerShell\\7\\pwsh.exe -nologo","hidden": false,//是否使用磨玻璃效果(用背景图的话就注释掉)//"useAcrylic" : true,//如果使用毛玻璃效果,透明多的设置//"acrylicOpacity" : 0.70,//背景颜色(与毛玻璃效果、背景图是相互矛盾的,只能用一种)//"background" : "#1C1C1C",//字体设置"fontFace" : "Hasklug Nerd Font",//背景图"backgroundImage" : "C:\\Users\\raink\\AppData\\Local\\PImage\\03.png",//图标"icon" : "C:\\Program Files\\PowerShell\\7\\assets\\Powershell_av_colors.ico"
}

其次还可以设置一些其他的

//这个是setting.json的整体文件结构
{//默认打开项,这里的GUID从profiles里任选一个,这里就用PowerShell7对应的"defaultProfile": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",//默认打开时的窗口大小,90列20行"initialCols" : 90,"initialRows" : 20,"profiles":[{"name": "cmd",…………},{//上文中PowerShell7的设置对应这个大括号"name": "PowerShell7",…………},{"name": "PowerShell Core",…………}],//一些快捷键的设置"keybindings": [{ "command": "closePane", "keys": "ctrl+shift+w" },{ "command": "paste", "keys": "ctrl+v" },{ "command": "copy", "keys": "ctrl+c" },{ "command": "newTab", "keys": "ctrl+t" }]
}

这样,我们打开Windows Terminal时就能默认以Powershell7启动,但是也只是设置了背景图等。

说明一点,我在..pwsh.exe的后面追加了“-nologo”,起什么作用呢,就是隐藏掉一些没用的信息,如果不加,就是下面这个效果。

里面的字体我会在下文说明。

接下来是设置Powershell7的主题

 

3、Powershell主题设置

3.1 安装插件

设置主题,这里需要安装两个包,在pwsh(powershell)中,执行下面两个安装:

Install-Module posh-git -Scope AllUsers
Install-Module oh-my-posh -Scope AllUsers

说明一下,我的个人电脑,所以按照AllUser来安装的,也可以使用CurrentUser 来安装

相关说明可参考:Install-Moduel指令说明

接下来安装PSReadLine

Install-Module -Name PSReadLine -AllowPrerelease -Scope AllUsers -Force -SkipPublisherCheck

3.2 主题设置

安装好后就是设置主题

在pwsh中,输入

$profile

能看到配置文件所在的地方,可以“按图索骥”的去找到后打开,如果你安装了 vs code(或者其他的文本编辑),也可以直接

输入“code $proflie”,用vs code打开进行编辑。

在文件中写入如下内容

Import-Module posh-git
Import-Module oh-my-posh
Set-Theme Agnoster

其中“Set-Theme”就是指定主题,有哪些主题可供选择呢,参考oh-my-posh的github主页

3.3 主题修改

3.3.1隐藏计算级名

所选择的Agnoster主题有点不喜欢的地方,就是会显示用户名和电脑名,电脑名有点长,显得难看

 怎么修改,当然我不推荐修改源文件,我们可以以它为模板,自定义一个主题

参考3.1中的Install-Module相关说明,因为是针对AllUser安装的,所以在

C:\Program Files\PowerShell\Modules\oh-my-posh\2.0.412\Themes 路径下

(如果是CurrentUser,应该在C:\Users\用户名\Documents\WindowsPowerShell\...路径下)

应该能看到所有主题对应的psm1文件

复制 Agnoster.psm1 ,建立副本,并重新起一个好听的名字,比如“MyTheme.psm1”,然后修改文件操作权限(免得修改完不能保存)。

用vs code或者记事本打开。

找到

看代码应该能懂吧,按自己喜好修改(我是删除了“computer”,然后把“$user@$computer”改成了字符表情,亲测Emoji也是可以的,但是如果使用Emoji,在vscode的终端中可能会出现对不齐的情况)

3.3.2 显示路径

通常默认路径是以“~”代替。但是也许你想要完整的清晰的路径显示。

还是在这个主题文件中,修改

为下面的(ShortPath改为FullPath)

在打开“....\PowerShell\Modules\oh-my-posh\2.0.412\Helpers”路径下的“Prompt.ps1”文件

找到 Get-FullPath 方法,把最后的放回值改掉(你一定能看懂下图的)

最后保存,重启W T ,就会看到:

4、乱码问题解决

其实设置完最常见的问题就是乱码,各种方框与问号。

我也在这个问题上纠缠了很久,看很多大佬的博客,都说要用“更纱黑体”这种字体,

通过下载应用这种字体,确实能解决方框和问号,但是还是差强人意,就像我上面的截图里那个python的小图标处,是空白的,我一直以为那就是个空白。。

直到我从WT的官网中无意中翻到了另一个网址:How to make a pretty prompt in Windows Terminal with Powerline, Nerd Fonts, Cascadia Code, WSL, and oh-my-posh

于是找到了这个字体网站:https://www.nerdfonts.com/

里面有一些添加了大量额外的字形的流行字体。我找了CodeNewRoman Nerd Font字体,下载安装,

并在WT的设置(setting.json)中进行设置(填了本文2节的坑),就好看多了。

  相关解决方案