開頭
Oh My Posh 是一個主題引擎可以美化 PowerShell 7 (pwsh)。
本篇文章紀錄 Oh My Posh 的安裝與主題置換來美化你的 pwsh,並可更改主題 (theme)。除此之外,我們還會新增幾個插件來擴充 pwsh 的功能性,進一步提高使用效率。包含指令自動完成,快速切換資料夾等等。
本篇文章會介紹以下套件的安裝:
環境配置
- Windows 10
- Windows Terminal
- PowerShell 7
安裝 gsudo
推薦安裝 gsudo ,可以更方便地提升權限到系統管理員權限,
請參考: gsudo - 讓 Windows 也有 sudo 功能
安裝 PowerShell 7
若還沒有安裝最新版的 PowerShell 7 ,
請參考: PowerShell 7 - 來安裝最新版的 PowerShell
安裝 Windows Terminal
若還沒有安裝最新版的 Windows Terminal,
請參考: 改用 Windows Terminal - 比 Cmder 更好用的現代終端機
安裝 Git
若還沒有安裝 Git ,可以使用 chocolatey 來安裝。
以系統管理員權限打開 PowerShell 輸入,
shell
choco install git -y
或是使用 gsudo 取得一次性系統管理員權限來安裝
shell
sudo choco install git -y
安裝 Patched 字型
為了 Oh My Posh 的主題可以正常顯示字型與圖示,下載以下四個字型並安裝:
更改字型
Windows Terminal
Ctrl + , 打開設定,選擇 PowerShell 7 的設定檔 `外觀 > 字型`,將字型改成 `MesloLGS NF` 之後儲存。PowerShell 7
以系統管理員身分執行 PowerShell 7(x64)
更改字型為 MesloLGS NF
安裝 Oh My Posh
pwsh 輸入
shell
winget install oh-my-posh
用文字編輯器編輯 $Profile
shell
notepad $Profile
添加以下,儲存後關閉。
$Profileshell
oh-my-posh init pwsh | Invoke-Expression
重新開啟 Windows Terminal 後生效,
或是輸入以下指令應用修改,
shell
. $Profile
更改 Oh My Posh 主題
Oh My Posh 內建很多不同的主題 (theme),請查看官網
或是輸入以下指令查看內建的主題與預覽,
shell
Get-PoshThemes
確定好了主題,讓我們修改 $Profile
來設定預設要使用的主題,
把 oh-my-posh init pwsh ...
的部分後面加上 --config "$env:POSH_THEMES_PATH\{主題名稱}.omp.json"
。
例如
$Profileshell
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\powerlevel10k_modern.omp.json" | Invoke-Expression
重新開啟 Windows Terminal 後生效,
或是輸入以下指令應用修改,
shell
. $Profile
安裝 Scoop
Scoop 就像 Mac 的 Homebrew 一樣讓可以我們更快速地用指令行安裝軟體。
pwsh 輸入
shell
Set-ExecutionPolicy RemoteSigned -Scope CurrentUserInvoke-WebRequest get.scoop.sh | Invoke-Expression
安裝插件 posh-git
posh-git 讓 Git 的指令可已用 Tab 自動完成。
安裝 posh-git
pwsh 輸入
shell
scoop bucket add extrasscoop install posh-gitAdd-PoshGitToProfile
在 $Profile
檔案最後一行新增以下指令:
shell
Import-Module posh-git
安裝插件 ZLocation
ZLocation 類似於 autojump 或是 Zsh-z 的插件,
可以用關鍵字直接跳到想去的資料夾,比使用 cd
更快速。
1.安裝 ZLocation
用 PowerShell 輸入以下指令:
shell
Install-Module ZLocation -Scope CurrentUser
輸入 [A] Yes to All ,全部同意。
2.修改使用者設定
shell
notepad $Profile
在 $Profile
檔案最後一行新增以下指令,
$Profileshell
Import-Module ZLocation
重新開啟 Windows Terminal 後生效,
或是輸入以下指令應用修改,
shell
. $Profile
ZLocation 使用方式
查看已知的資料夾位置
shell
z
進入包含此字串的資料夾,可以用 Tab
來選擇結果,如果有多個資料夾符合 doc 的話。
shell
z doc
回到之前的資料夾
shell
z -
(選用) 安裝 NeoFetch
NeoFetch 用來顯示電腦配置。
即使已經有安裝 git 了,這邊還是要安裝 git ,因為 neofetch 會直接使用 scoop 安裝的 git 。
打開 pwsh 輸入以下指令,
shell
scoop install gitscoop install neofetch
執行 NeoFech
shell
neofetch
(選用) 舊版錯誤訊息
如果你看到以下錯誤訊息,
shell
Hey friendIn an effort to grow oh-my-posh, the decision was made to nolonger support the PowerShell module. Over the past year, theadded benefit of the module disappeared, while the burden ofmaintaining it increased.However, this doesn't mean oh-my-posh disappears from yourterminal, it just means that you'll have to use a differenttool to install it.All you need to do, is follow the migration guide here:https://ohmyposh.dev/docs/migrating
表示你過去是用 Install-Module
的方式安裝 Oh My Posh,如以下:
shell
Install-Module oh-my-posh -Scope CurrentUser
詳細情況請參考官方網站。
解決辦法
刪除過去的版本。打開 pwsh 輸入
shell
Uninstall-Module oh-my-posh -AllVersions
移除 $Profile
裡的 Import-Module oh-my-posh
shell
notepad $Profile
然後回到最上面的開始的流程重新安裝。