# 前言
虽然目前 Windows
对 WSL
已经支持很多常规的操作,但是有时候仍然不得不在 Windows
环境下执行某些命令。尤其 WSL
的文件 IO
速率相比于原生 Windows
系统存在一定差距,尤其是 Git
仓库稍微大一点便能明显感受到延迟。此外, WSL
的网络代理有时候也会出现故障, Git
操作很不方便。因此,基于 Powershell
配置一些支持常用操作,能够更方便自己的开发。
# 升级
由于需要使用到一些模块,因此需要首先升级系统的 Powershell
, Windows
官方提供了多种可选方式升级或安装最新的 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-item –type 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-zsh
, Powershell
可以使用 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
仓库中,该模块可能会影响实际的性能,因此可以视情况决定是否启用。