一提起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.x.x
点击设置
在打开的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 AllUsersInstall-Module oh-my-posh -Scope AllUsers
说明一下,我的个人电脑,所以按照AllUser来安装的,也可以使用CurrentUser 来安装
相关说明可参考Install-Moduel指令说明:https://docs.microsoft.com/en-us/powershell/module/powershellget/install-module?view=powershell-7
接下来安装PSReadLine
Install-Module -Name PSReadLine -AllowPrerelease -Scope AllUsers -Force -SkipPublisherCheck
3.2 主题设置
安装好后就是设置主题
在pwsh中,输入
$profile
能看到配置文件所在的地方,可以“按图索骥”的去找到后打开,如果你安装了 vs code(或者其他的文本编辑),也可以直接
输入“code $proflie”,用vs code打开进行编辑。
在文件中写入如下内容
Import-Module posh-gitImport-Module oh-my-poshSet-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的官网中无意中翻到了另一个网址:
https://www.hanselman.com/blog/HowToMakeAPrettyPromptInWindowsTerminalWithPowerlineNerdFontsCascadiaCodeWSLAndOhmyposh.aspx
于是找到了这个字体网站:https://www.nerdfonts.com/
里面有一些添加了大量额外的字形的流行字体。我找了CodeNewRoman Nerd Font字体,下载安装,
并在WT的设置(setting.json)中进行设置(填了本文2节的坑),就好看多了。