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


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

安装 oh-my-posh

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

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

Install-Module posh-git -Scope CurrentUser

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

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

Install-Module oh-my-posh -Scope CurrentUser

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

启用模组并设置主题

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

Import-Module oh-my-posh

但是,我们期望的是每次打开 PowerShell 都能够启用这个模组,所以我们需要设置 profile 文件让它自动启用。

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

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

Import-Module oh-my-posh

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

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

Set-Theme

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

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

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

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

安装字体/安装第三方 PowerShell

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

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

推荐的其他 PowerShell:

而适用于 oh-my-posh 的字体推荐使用 PowerLine 字体,他们专门为 zsh 这样的体验而生。官方文档在这里 Overview — Powerline beta documentation


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


参考资料

最新文章

  1. 查看html元素绑定的事件与方法的利器
  2. C# 显示问题
  3. 如何判断Javascript对象是否存在
  4. Consistent hashing —— 一致性哈希
  5. linux oracle磁盘满了
  6. JAVA经典算法40题及解答
  7. git冲突的发生和解决/git workspace关于git的配置
  8. MSChart使用之动态生成多个多行ChartArea
  9. Windows离开模式(AwayMode)
  10. Web前端优质学习网站
  11. UIImageView 浅析
  12. mybatis mapper.xml 写关联查询 运用 resultmap 结果集中 用 association 关联其他表 并且 用 association 的 select 查询值 报错 java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for mybatis.map
  13. CentOS7.5实践快速部署LAMP+Tomcat成功运行阿里云或者腾讯云
  14. iTOP4412环境搭建:arm-linux-gcc: 没有那个文件或目录
  15. 我的C语言编程风格
  16. shell脚本--变量与数组
  17. Kubernetes之Controllers一
  18. Linux 目录说解
  19. gamma函数及相关其分布
  20. python中的运算符优先级(其它语言也试用)

热门文章

  1. WinCE数据通讯之SqlCE数据同步篇
  2. cocos2d-x入门三 分层设计框架
  3. Kettle 数据抽取
  4. PHP 重载方法 __call()
  5. TestNG,多个场景结合运行Suite.xml
  6. 转:在Eclipse的Debug页签中设置虚拟机参数
  7. Windows、Ubuntu双系统正确卸载Ubuntu系统
  8. S16课件
  9. Pandas:SettingWithCopyWarning
  10. Java复习6异常处理