目前 Powershell 已經來到了 7,有關差異說明可以參考以下的連結,這裡也會使用 Powershell 7 來演示
Windows PowerShell 5.1 與 PowerShell 7.x 之間的差異 - PowerShell | Microsoft Docs
看一下效果
開發環境
- Windows 10 Pro 20H2
- Powershell 7
- Windows Terminal
安裝請參考 Windows 終端機安裝 | 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
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