Windows 下终端体验优化浅解

675 阅读5分钟

我日常用过linuxWindowsMacOS系统作为开发环境,其中Windows对命令行终端的支持度让我最不满意。于是,我转向了MacOS阵营,真香。

前几天,前同事从公司跳槽去了甲方公司,用起了公司配的Windows笔记本并且吐槽命令行环境难用,于是我决定写这一篇文章分享出来,让我们花一点点时间优化一下Windows环境下的命令行终端的使用体验。

主要内容如下

  • 升级核心shell:powershell v7
  • 更换默认终端软件:tabby
  • 选择字体
  • 主题优化
  • Fish-like命令推断
  • 支持autojump

核心Shell

不同的操作系统平台都有自己的默认shell支持,如linux常用bash,而MacOS支持zshwindows下起初使用CMD,随着版本升级和终端发展,微软开始推广Powershell

Windows 10/11默认集成了Powershell v5,我们可以去官网下载v7版本的Powershell:

Installing PowerShell on Windows - PowerShell | Microsoft Docs

5.1版本的 powershell 基于 .NET Framework,而 7.x 则基于 .NET Core,后者具有跨平台的优势和一些新特性

下载之后安装即可。

终端软件 Tabby

tabby 提供了一系列的快捷键,笔者最常用的是 ctrl+space显示和隐藏 tabby

终端软件方面,其实有很多选择。我个人比较喜欢Tabby!其官网主页链接:Tabby - a terminal for a more modern age

windows的老用户或许用过许多其他终端,但是还是推荐大家体验一下新出现的一些应用,新应用在UI设计/功能设计上都或多或少弥补了老应用的一些不足。

下载x64版本的可执行程序,安装之。

安装完成并且运行,到设置项里修改默认shell:

image-20220612144620868.png

选择Powershell v7作为默认shell即可。

字体优化

系统自带的字体在命令行环境下的视觉效果简直一言难尽,推荐下载fira code或者hack字体,笔者使用的是这里的:tonsky/FiraCode: Free monospaced font with programming ligatures 字体文件,下载安装即可,然后在Tabby的外观设置这里输入Fira Code作为字体选项。

source-foundry/Hack: A typeface designed for source code 如果你喜欢hack的风格,也可以下载使用。

终端主题优化 - Oh-my-posh

oh my zsh大名鼎鼎,但是在windows下我们选择Powershell作为核心shell,社区里也有Home | Oh My Posh可用。

我们打开tabby,输入安装命令:

 winget install JanDeDobbeleer.OhMyPosh --source winget

即可通过winget安装ohMyPosh

如果终端提示权限不足,则可以尝试使用管理员权限打开powershell,执行Set-ExecutionPolicy bypass命令修改执行策略。

接下来,我们要了解一些预置知识:powershell 的配置文件的路径为:$PROFILE,其地位可以视为bash.bashrc

因此,如果你从未创建过默认配置文件,那么这个文件需要我们手动创建:

# 创建
ni -Force $PROFILE
# 通过记事本打开并且编辑
notepad $PROFILE

编辑保存以下内容即可在每次打开终端的时候初始化好主题样式:

# 使用默认主题
oh-my-posh init pwsh | Invoke-Expression

. $PROFILE等同于source ~/.bashrc,用于读取并且应用最新的配置。

在命令行中执行Get-PoshThemes即可预览所有可选的主题,选择你最喜欢的那一个。

上述命令将会在最后提示如何修改默认主题,复制好写入配置文件即可: notepad $PROFILE即可打开编辑默认配置文件

如下是我暂时的配置文件:

oh-my-posh init pwsh --config C:\Users\Zz\AppData\Local\Programs\oh-my-posh\themes/spaceship.omp.json | Invoke-Expression

在执行get-poshThemes成功之后,默认会下载所有主题描述文件到本地的主题目录,我们设置自己的默认主题只需要替换初始化配置字段中的主题名即可,如上我选择了spaceship主题。

不同主题除了好看之外,还提供了一些可能会有用的信息,例如当前目录下node版本、git分支信息、时间日期、路径等等

命令建议功能

fish shell自带了强大的命令建议功能,可以让我们在输入某些前置命令的时候推断出完整的命令,真是好用到爆炸。

首先,我们安装主要的依赖:

Install-Module PSReadLine

其次,配置PROFILE并且激活配置(也可以重启终端、打开新的终端自动读取最新配置)

Import-Module PSReadLine
Set-PSReadLineOption -PredictionSource History

image-20220612161939583.png

如上所示,输入c即可通过历史命令记录进行推断,按键即可自动补全。

Auto Jump - ZLocation

熟悉Linux的朋友或许都知道Auto Jump有多好用,简单来说直接通过j xx进行优先级判断,自动切换路径到最有可能的位置。

比如,我们经常在终端切换路径到工作区,这时候Auto Jump就非常好用,直接通过最简单的命令进行目录跳转。

powershell的生态里,我们有ZLocation可用 🎉。

给个 Star 吧!vors/ZLocation: ZLocation is the new Jump-Location

接着,继续更新配置文件以便每次打开终端都自动导入ZLocation:

oh-my-posh init pwsh --config C:\Users\Zz\AppData\Local\Programs\oh-my-posh\themes/cert.omp.json | Invoke-Expression

Import-Module PSReadLine
Set-PSReadLineOption -PredictionSource History
Import-Module ZLocation

不要忘记替换配置文件中我的用户名,注意好路径问题

现在,享受命令z带来的效率提升吧!

z配合PSReadLinefish-like功能简直天衣无缝!

最后

Powershellbash都是shell,都有自己的配置文件和语言规范、生态等等。如果你日常在Windows下工作,笔者真诚地推荐你花一点时间了解一下Powershell,它可能比你想象中更为强大。

如果有任何问题或建议,欢迎联系笔者!