2

将美化进行到底,把 PowerShell 做成 oh-my-zsh 的样子

 2 years ago
source link: https://blog.walterlv.com/post/beautify-powershell-like-zsh.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

将美化进行到底,把 PowerShell 做成 oh-my-zsh 的样子

发布于 2017-12-26 15:00
更新于 2021-08-28 08:56

不知你有没有看过 Linux 上 oh-my-zsh 的样子?看过之后你一定会惊叹,原来命令行还能这么玩!然而 Windows 下能这么玩吗?答案是可行的,接下来就来看看怎么玩。

借用了下 oh-my-zsh 的官网图片


Windows 下我们用 oh-my-posh 在 PowerShell 中实现这样的效果。分以下三步走:

安装 oh-my-posh

我们需要先以管理员权限启动 PowerShell,以便执行安装操作。(具体是在开始按钮上点击右键,选择“Windows PowerShell (管理员)”。)

以管理员权限启动 PowerShell

然后,运行命令以安装 posh-git,这是 oh-my-posh 的依赖。

Install-Module posh-git -Scope CurrentUser

如果此前没有安装 NuGet 提供程序,则此时会提示安装 NuGet;如果此前没有开启执行任意脚本,此处也会提示执行脚本。如果没有权限执行脚本,可能需要先执行 Set-ExecutionPolicy Bypass

Install-Module posh-git -Scope CurrentUser

安装 NuGet 提供程序

安装 posh-git

接下来,运行命令以安装 oh-my-posh 本身。

Install-Module oh-my-posh -Scope CurrentUser

Install-Module oh-my-posh -Scope CurrentUser

安装 oh-my-posh

自此,oh-my-posh 安装完毕。

启用模组并设置主题

接下来,我们需要启用安装的模组。启用模组的命令是:

Import-Module oh-my-posh

其实写本文主要就是想体验 zsh 的操作,并看看 git 文件夹的视觉效果。现在我们就试试,输入:

Set-PoshPrompt

(注意,oh-my-posh 更新后,命令从 Set-Theme 变成了 Set-PoshPrompt。)

然后按一下空格,按一下 Tab。会发现这时已经可以用方向键来选择参数了!原生 PowerShell 可没有这个功能啊!

选择主题

我们选择 Agnoster 主题。(这些主题都是 oh-my-posh 带给我们的。)

接下来我们看看 git 文件夹下的显示:

git 文件夹的显示

并没有 zsh 那样的效果。——因为我们缺少专用的字体!

下一节我们会讲如何安装专为 zsh 效果设计的字体。

现在,我们需要让 PowerShell 每次启动的时候都能够加载这个模组,所以我们需要设置 profile 文件让它自动启用。

$profile 可以让 PowerShell 告诉我们这个文件的路径是什么。当然下图是我的路径,读者的默认在文档路径里的 PowerShell 文件夹下。

profile 文件路径

我们需要编辑这个文件(如果没有,手动创建一个),然后在里面写下那一句话:

Import-Module oh-my-posh
Set-PoshPrompt Paradox

在个人配置文件中的内容

接下来,新打开 PowerShell(不需要管理员权限)时就会提示加载了这个文件:

加载个人及系统配置文件

安装字体/安装第三方 PowerShell

!!!重要说明:给 PowerShell 定制字体是一件非常困难的事情,非常困难!!! 可参见 自定义 Windows PowerShell 和 cmd 的字体 感受一下。 所以,这里更倾向于在安装了字体的情况下使用第三方 PowerShell。

比如下图是我用 vscode 中带的 PowerShell 的效果。

PowerShell in vscode

推荐的其他 PowerShell:

但是,如果你执意要跑原生 PowerShell,那也不是没有办法,你可以使用 PowerLine 专为 PowerShell 和 zsh 设计的字体,它们的字体是可以完美跑到 PowerShell 和 PowerShell Core 中的。

下图是我在 PowerShell Core 中的运行效果:

PowerLine 字体效果

请在这里下载 PowerLine 字体:

方法是克隆这个仓库,然后在克隆出来的文件夹中找到 Install.ps1 文件,执行它,会发现它会自动为我们安装所有的 PowerLine 字体。

Install.ps1

安装所有的字体

安装完成之后,在 PowerShell 或者 PowerShell Core 的标题栏上右击选择“属性”,然后选择你想要设置的字体就可以立刻看到效果了。注意,PowerLine 字体都是带有 for PowerLine 后缀的。

设置字体

PowerLine 字体官方文档在这里:Overview — Powerline beta documentation

官方文档中的 PowerLine 字体截图
▲ 官方文档中的 PowerLine 字体截图


参考资料

本文会经常更新,请阅读原文: https://blog.walterlv.com/post/beautify-powershell-like-zsh.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。

如果你想持续阅读我的最新博客,请点击 RSS 订阅,或者前往 CSDN 关注我的主页

知识共享许可协议 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名 吕毅 (包含链接: https://blog.walterlv.com ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请 与我联系 ([email protected])


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK