# 前言

虽然目前 WindowsWSL 已经支持很多常规的操作,但是有时候仍然不得不在 Windows 环境下执行某些命令。尤其 WSL 的文件 IO 速率相比于原生 Windows 系统存在一定差距,尤其是 Git 仓库稍微大一点便能明显感受到延迟。此外, WSL 的网络代理有时候也会出现故障, Git 操作很不方便。因此,基于 Powershell 配置一些支持常用操作,能够更方便自己的开发。

# 升级

由于需要使用到一些模块,因此需要首先升级系统的 PowershellWindows 官方提供了多种可选方式升级或安装最新的 Powershell ,参见在 Windows 上安装 PowerShell - PowerShell | Microsoft Learn[1]

如果网络状况良好,那么推荐直接使用 winget 命令安装。否则也可以下载 msi 安装包安装。

# Autosuggestion 工具

WSL 下可以通过 oh-my-zsh 配置 auto-suggestion 工具,可以在输入命令时显示以往使用的命令。 Powershell 也可以配置类似的工具。[2]

使用该工具需要安装相关依赖:

Install-Module PSReadLine -RequiredVersion 2.1.0

安装完成后,可以使用以下命令启用 Autosuggestion 功能:

Import-Module PSReadLine
Set-PSReadLineOption -PredictionSource History

以上命令只在当前窗口有效。如果需要默认启动,需要编辑配置文件。

# 编辑 Powershell 配置文件

首先需要检查是否已有配置文件:

Test-path $profile

如果结果为 True ,说明已经包含该文件。为 False ,则需要自行生成:

New-itemtype file –force $profile

执行命令设置执行权限(该命令需要管理员权限):

Set-ExecutionPolicy RemoteSigned

之后编辑该文件:

notepad $profile

将语句添加到该配置文件中:

Import-Module PSReadLine
Set-PSReadLineOption -PredictionSource History

此外,该工具也支持其他功能:

# Shows navigable menu of all options when hitting Tab
Set-PSReadlineKeyHandler -Key Tab -Function MenuComplete
# Autocompletion for arrow keys
Set-PSReadlineKeyHandler -Key UpArrow -Function HistorySearchBackward
Set-PSReadlineKeyHandler -Key DownArrow -Function HistorySearchForward

# ls 命令显示高亮

https://stackoverflow.com/a/30788506

通过以下命令安装 Color 模块,支持 ls 命令显示高亮[3]

Install-Module Color

之后,在配置文件中添加导入模块语句:

Import-Module Color

# 美化

类似于 oh-my-zshPowershell 可以使用 oh-my-posh 来美化。

使用以下命令安装 oh-my-posh

winget install JanDeDobbeleer.OhMyPosh -s winget

# 启用主题

使用以下命令可以激活自己想要的主题:

oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH/ys.omp.json" | Invoke-Expression;

其中 ys 是想要启用的主题的名称,终端主题可以在官方网站主题页面查看。[4]

以上命令也可以加入到 Powershell 的配置文件中。

# 安装字体

许多主题可能用到了特殊字符,如果终端中出现了方块显示的符号,可以下载官方推荐的 Nerd 字体。[5]

字体下载网站:Nerd Fonts - Iconic font aggregator, glyphs/icons collection, & fonts patcher

# posh-git 模块

安装 posh-git 模块可以为 oh-my-posh 提供 git 状态显示和命令补全等功能。使用以下命令安装:

Install-Module posh-git

并在配置文件中添加导入语句。

注意,在某些较大的 Git 仓库中,该模块可能会影响实际的性能,因此可以视情况决定是否启用。


  1. 在 Windows 上安装 PowerShell - PowerShell | Microsoft Learn ↩︎

  2. Fish-like Autosuggestion in Powershell - DEV Community 👩‍💻👨‍💻 ↩︎

  3. colors - Powershell: Properly coloring Get-Childitem output once and for all - Stack Overflow ↩︎

  4. Themes | Oh My Posh ↩︎

  5. Nerd Fonts - Iconic font aggregator, glyphs/icons collection, & fonts patcher ↩︎