教學課程 - 使用 Oh My Posh 設定 PowerShell 或 WSL 的自訂提示
Oh My Posh 提供完整自定義命令提示字元體驗的主題功能,提供 Git 狀態色彩編碼和提示。
如果您只想自定義終端機的色彩配置或外觀,您可以在 Windows 終端機 設定中執行此動作(不需要安裝 Oh My Posh 主題)。
在本教學課程中,您會了解如何:
安裝 Nerd Font
自訂命令提示字元通常會使用圖像(圖形符號)來設定提示的樣式。 如果您的字型不包含適當的字元,您可能會在提示中看到數個 Unicode 取代字元 '▯'。
若要查看終端機中的所有字元,建議您安裝類似 Cascadia Code NF 的 Nerd Font,您可以從 Cascadia Code 發行頁面下載。
下載之後,您必須解壓縮並將字型安裝在您的系統上。 (如何將新的字型新增至 Windows)。
若要設定與 Oh My Posh 和 Terminal Icons 搭配使用的 Nerd Font,請從 Windows 終端機下拉式功能表選取 [設定] (Ctrl+,),以開啟 Windows 終端機設定 UI。 選取您想要套用字型的配置檔(例如 PowerShell),然後選取 [ 外觀]。 在 [ 字型臉部 ] 下拉功能表中,選取 [Cascadia Code NF ] 或您想要使用的 Nerd Font。
注意
如果您想要使用不支援字元圖示的終端機字型,例如 Cascadia Code PL,請考慮使用包含 minimal
函式的 Oh My Posh 主題,指出不需要其他圖示。
使用 Oh My Posh 自訂 PowerShell 提示
Oh My Posh 可讓您使用完整色彩集來定義和轉譯終端機提示,包括可以使用內建主題或建立您自己的自訂主題。
安裝適用於 PowerShell 的 Oh My Posh
若要自定義 PowerShell 提示字元,請使用 winget 安裝 Oh My Posh,這會安裝:
oh-my-posh.exe
:Windows 可執行檔themes
:最新的 Oh My Posh 主題
若要啟動安裝,請輸入命令:
winget install JanDeDobbeleer.OhMyPosh
您必須同意來源條款,且可能遇到有多個套件可用的執行個體。 在此情況下,請選取您想要使用的套件識別碼,然後重新輸入命令: winget install <package ID>
。
若要使用 Oh My Posh 的 Microsoft Store 版本,亦即有新版本可用時會自動更新,請使用下列命令:
winget install XP8K0HKJFRXGCK
輸入 oh-my-posh version
以確認您的 Oh My Posh 安裝版本編號。 為確保您取得最新的更新,您可以使用下列命令:winget upgrade oh-my-posh
。
注意
如果您想要在 PowerShell 安裝最新版本的 Oh My Posh,建議您先移除 OMP 模組的快取檔案,並解除安裝舊模組。 Oh My Posh 文件有提供關於如何執行這項作業的指示。如果您比較熟悉 Scoop 安裝程式,或允許自動化的手動安裝方法,這些方法也可用於在 Windows 上安裝,只要依照 Oh My Posh 文件中的指示即可。
選擇並套用 PowerShell 提示主題
您可以在 Oh My Posh 主題頁面上瀏覽完整的主題清單。
選擇主題,並使用此命令更新 PowerShell 設定檔。 (您可以使用自行選擇的文字編輯器取代 notepad
。)
notepad $PROFILE
如果您收到路徑錯誤訊息,您可能還沒有 PowerShell 的設定檔。 若要建立設定檔,請使用下列 PowerShell 命令來建立,然後再次嘗試以文字編輯器開啟。
new-item -type file -path $profile -force
將下列項目新增至您的 PowerShell 設定檔檔案結尾,以設定 paradox
主題。 (以您選擇的主題取代 paradox
。)
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\paradox.omp.json" | Invoke-Expression
現在,每個新的PowerShell實例都會從匯入 Oh My Posh 開始,並設定您的主題。
如果您在嘗試開啟新的 PowerShell 執行個體時收到腳本錯誤訊息,您的 PowerShell 執行原則可能受到限制。 若要將 PowerShell 執行原則設為不受限制,您必須以系統管理員身分啟動 PowerShell,然後使用下列命令:
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
注意
這不是您的 Windows 終端機設定檔。 您的 PowerShell 設定檔是在每次 PowerShell 啟動時執行的指令碼。 深入了解 PowerShell 設定檔 (英文)。
提示
如需常見疑問或問題的解答,請參閱 Oh My Posh 常見問題。 若要深入瞭解組態和一般設定,例如如何還原目前的工作目錄,請參閱 Oh My Posh 文件。
使用 Oh My Posh 自訂 WSL 提示
哦, My Posh 也可讓您使用 內建主題自定義 WSL 提示。
安裝適用於 WSL 的 Oh My Posh
建議您依照 Oh My Posh 文件中的 Linux 安裝指南安裝適用於 WSL 的 Oh My Posh,無論是使用 Bash、Zsh 或其他命令。
使用 Oh My Posh 自定義 WSL 提示, 會使用 Homebrew 套件管理員 進行安裝。 安裝適用於Linux的Homebrew時,請務必遵循 後續步驟 指示,將Homebrew新增至您的PATH和bash殼層配置檔腳本。
Homebrew 將會安裝:
oh-my-posh
- 可執行檔,已新增至 /usr/local/binthemes
- 最新的 Oh My Posh 主題
選擇並套用 WSL 提示主題
Oh My Posh 主題會在 oh-my-posh 目錄中以 JSON 檔案的形式顯示。 您可以輸入 cd $(brew --prefix oh-my-posh)
,然後在清單輸入 cd themes
和 ls
來找到主題。 針對透過 WSL 執行的 Ubuntu-20.04,路徑可能類似於:\\wsl.localhost\Ubuntu-20.04\home\linuxbrew\.linuxbrew\Cellar\oh-my-posh\6.34.1\themes
。 您可以在 Oh My Posh 主題檔中檢視主題的外觀。
若要使用主題,請從 themes
資料夾將主題複製到 $Home
資料夾,然後將這一行新增至在 $Home
資料夾中的 .profile
檔案底部:
eval "$(oh-my-posh init bash --config ~/jandedobbeleer.omp.json)"
您可以將 取代 jandedobbeleer.omp.json
為您想要使用的主題名稱(只要確定該主題已複製到您的 $Home
資料夾中即可)。
或者,如果您在有 PowerShell 和 WSL 的 Windows 中使用 oh-my-posh,可以指向 Windows 使用者主資料夾中的主題,以與 WSL 共用 PowerShell 主題。 在您的 WSL 發行版本 .profile
路徑,將 ~ 取代為路徑:/mnt/c/Users/<WINDOWSUSERNAME>
。 將 <WINDOWSUSERNAME>
取代為您自己的 Windows 使用者名稱。
如有需要,您可以自訂 Oh My Posh 主題。
使用 Terminal-Icons 新增遺漏的資料夾或檔案圖示
Terminal-Icons 是 PowerShell 模組,在 Windows 終端機中顯示檔案或資料夾時,會新增檔案和資料夾圖示,並根據名稱或副檔名查找其適用的圖示。 Terminal-Icons 會嘗試使用已知檔案/資料夾的圖示,但如果找不到,則會回復為一般檔案或資料夾圖示。
若要使用 PowerShell 安裝 Terminal-Icons,請使用以下命令:
Install-Module -Name Terminal-Icons -Repository PSGallery
如需詳細資訊,包括使用方式和命令,請參閱 GitHub 上的 Terminal-Icons 存放庫。
其他資源
- Oh my Posh 文件
- Terminal-Icons 存放庫
- Posh-Git 文件:Posh-Git 是 PowerShell 模組,提供可在 PowerShell 提示中顯示的 Git 狀態摘要資訊,以整合 Git 和 PowerShell。
- PowerLine 文件:Powerline 是適用於 vim 的狀態列外掛程式,也為其他數個應用程式提供狀態列和提示,包括 zsh、bash、tmux、IPython、Awesome、i3 和 Qtile。