Powershell比起zsh并不是太好用,但经过恰当的配置,能够达到挨近nix体系 上终端的作用。

请保证你的操作体系至少是Windows 10,我并没有在更老的操作体系上测试

终究作用

  • 好看的UI,并且每一条指令前能提示git, node相关信息
  • Tab 主动补全Git指令 和 途径
  • 方向键 上下主动补全输入历史

让Powershell拥有和zsh一样的自动补全,大幅提升Windows的开发体验,保姆级教程

Windows Terminal

这是一个微软出品的终端,假如你的操作体系是Windows 11,那么它现已被集成在了体系中。

让Powershell拥有和zsh一样的自动补全,大幅提升Windows的开发体验,保姆级教程

您也能够运用其它终端,请依照对应的运用方法修正字体和启动的Shell

前往 Windows Terminal – Microsoft Store 应用程序。 点击获取,会弹出

让Powershell拥有和zsh一样的自动补全,大幅提升Windows的开发体验,保姆级教程

依照提示装置即可。 然后咱们翻开Windows terminal,它应该是这样的

让Powershell拥有和zsh一样的自动补全,大幅提升Windows的开发体验,保姆级教程

装置字体

oh-my-posh有一些主题运用了Nerd font,咱们需求装置他们避免呈现乱码 进入Nerd Fonts – Iconic font aggregator, glyphs/icons collection, & fonts patcher。下载喜欢的字体。我这儿挑选了Caskaydia Cove Nerd Font。

让Powershell拥有和zsh一样的自动补全,大幅提升Windows的开发体验,保姆级教程
装置的时候请挑选带Windows Compatible后缀的字体。

接下来翻开咱们的Windows Terminal设置项

让Powershell拥有和zsh一样的自动补全,大幅提升Windows的开发体验,保姆级教程
挑选左边配置文件下的默许值
让Powershell拥有和zsh一样的自动补全,大幅提升Windows的开发体验,保姆级教程
进入外观选项,将字体改为你刚刚装置的Nerd Font字体
让Powershell拥有和zsh一样的自动补全,大幅提升Windows的开发体验,保姆级教程

装置Powershell 7,并将它改为Windows terminal 默许Shell

Installing PowerShell on Windows – PowerShell | Microsoft Docs 依照这个页面的提示,装置Powershell 7。

winget install --id Microsoft.Powershell --source winget

接着翻开Windows Terminal的设置项

让Powershell拥有和zsh一样的自动补全,大幅提升Windows的开发体验,保姆级教程

让Powershell拥有和zsh一样的自动补全,大幅提升Windows的开发体验,保姆级教程
将启动tab下的默许配置文件改为PowerShell(请注意,不是Windows Powershell)

装置oh-my-posh,posh-git和Readline

请运转下列的指令

Install-Module -Name PowerShellGet -Force
winget install JanDeDobbeleer.OhMyPosh -s winget
PowerShellGet\Install-Module posh-git -Scope CurrentUser -Force
Install-Module PSReadLine

修正配置文件

接下来,咱们需求修正咱们Powershell的配置文件。

code $PROFILE
# 假如你没有装vscode,请运用下面的这条指令,将翻开记事本
notepad.exe $PROFILE

咱们在这个文件中加入下列内容

Set-PSReadLineKeyHandler -Key Tab -Function MenuComplete #Tab键会呈现主动补全菜单
Set-PSReadlineKeyHandler -Key UpArrow -Function HistorySearchBackward
Set-PSReadlineKeyHandler -Key DownArrow -Function HistorySearchForward
# 上下方向键箭头,查找历史中进行主动补全
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH/jandedobbeleer.omp.json" | Invoke-Expression
Import-Module posh-git # git的主动补全

接着咱们翻开一个新的Windows terminal窗口,成品应该是这样的

让Powershell拥有和zsh一样的自动补全,大幅提升Windows的开发体验,保姆级教程

Q & A

为什么在VSCode/Webstorm编辑器的集成终端中呈现了乱码

请修正对应编辑器终端的字体为上面装置字体章节的字体

为什么我没有winget指令

您的体系比较老旧,请参照运用 winget 工具装置和管理应用程序 | Microsoft Docs装置winget。

如何更换oh-my-posh的主题

请履行Get-PoshThemes,它会展示所有的theme,之后修正$PROFILE文件中的--config 参数,比如替换掉jandedobbeleer.omp.json中的jandedobbeleer为恣意主题