幾個強化 Powershell 的套件

目前 Powershell 已經來到了 7,有關差異說明可以參考以下的連結,這裡也會使用 Powershell 7 來演示

Windows PowerShell 5.1 與 PowerShell 7.x 之間的差異 - PowerShell | Microsoft Docs

看一下效果

開發環境

安裝 Powershell 7

這裡我是使用 github 的檔案安裝

https://github.com/PowerShell/PowerShell/releases

套件安裝清單

  • oh-my-posh:美化 powershell 指令
  • posh-git:美化 git 指令
  • DockerCompletion:docker 指令補完
  • scoop-completion:scoop 指令補完
  • PSReadLine:已內建

如何安裝套件

從 powershell gallery PowerShell Gallery | Packages matching DockerCompletion 上面找到你要的套件

以 oh-my-posh 為例

安裝

Install-Module oh-my-posh -Scope CurrentUser

 

編輯組態檔

if (!(Test-Path -Path $PROFILE )) { New-Item -Type File -Path $PROFILE -Force }
notepad $PROFILE

 

完整檔案名稱

%userprofile%\documents\PowerShell\Microsoft.PowerShell_profile.ps1

更多資訊請參考 關於設定檔 - PowerShell | Microsoft Docs

 

在組態檔裡添加以下內容

Import-Module oh-my-posh
Set-Theme Paradox

 

取得主題

 

我發現在 Powershell 5,Set-Theme 會失敗,要使用 Set-PoshPrompt、Get-PoshPrompt 才可以

套件清單

oh-my-posh

位置:PowerShell Gallery | oh-my-posh 3.173.0

除了上述安裝步驟之外,還需要設定字型,官方建議使用 Cascadia Code PL,下載位置 Releases · microsoft/cascadia-code (github.com)

還有幾種主題,官方說明,Themes | Oh My Posh

更多的設定,官方說明,PowerShell | Oh My Posh

微軟安裝說明,Windows 終端機 Powerline 設定 | Microsoft Docs

posh-git

必要條件,請 安裝 Git for Windows

位置:PowerShell Gallery | posh-git 1.0.0

安裝:

Install-Module posh-git -Scope CurrentUser

DockerCompletion

位置:PowerShell Gallery | DockerCompletion 1.2010.0.201211

用途:docker 命令自動完成

安裝:

Install-Module DockerCompletion -Scope CurrentUser

 

Scoop-Completion

位置:PowerShell Gallery | scoop-completion 0.2.3

用途:scoop 命令自動完成

安裝:

Install-Module scoop-completion -Scope CurrentUser -AllowClobber

 

最終的設定檔

Import-Module posh-git
Import-Module oh-my-posh
Set-Theme Paradox
Import-Module DockerCompletion
Import-Module scoop-completion

 

參考資源

使用 oh-my-posh 美化 PowerShell 樣式 (poychang.net)

Windows 終端機 Powerline 設定 | Microsoft Docs

 

補充

好友 James Wang 分享:

Powsershell 6+ 以上已經內建 PSReadLine,所以只要補上相關組態即可

資料來源:https://github.com/PowerShell/PSReadLine

組態設定如下:

Set-PSReadLineOption -PredictionSource History # 設置預測文本來源為歷史記錄
Set-PSReadlineKeyHandler -Key Tab -Function Complete # 設置 Tab 鍵補全
Set-PSReadLineKeyHandler -Key Tab -Function MenuComplete # 設置 Tab 為菜單補全和 Intellisense
Set-PSReadLineKeyHandler -Key Escape -Function Undo # 設置 Esc 為撤銷
Set-PSReadLineKeyHandler -Key UpArrow -Function HistorySearchBackward # 設置向上鍵為後向搜索歷史記錄
Set-PSReadLineKeyHandler -Key DownArrow -Function HistorySearchForward # 設置向下鍵為前向搜索歷史紀錄

PSReadLine 的效果長這樣,不用再羨慕 mac/linux 底下的 zsh + zim了

若有謬誤,煩請告知,新手發帖請多包涵


Microsoft MVP Award 2010~2017 C# 第四季
Microsoft MVP Award 2018~2022 .NET

Image result for microsoft+mvp+logo