美化你的 Windows Terminal (oh-my-posh)
說明
記錄一下怎麼讓 Windows Terminal 能夠支援不同的主題
Windows Terminal
先下載 Windows Terminal
字體
先下載 Nerd Fonts 字體,在 release 的頁面找到你要用的字體並且下載,我這邊是跟參考資料用一樣的字體 FiraCode
。
下載完將裡面的檔案解壓縮到隨便一個資料夾,把所有的字體全選,並點擊右鍵安裝。
設定 Window Terminal 字體
點擊 Windows Terminal 旁邊 +
號的 ⬇
,之後點擊 Settings
然後在左邊的 Profiles
找到 Defaults
,並點擊 Appearance
。
之後在 Font face
的地方選擇你剛剛安裝的字體
Oh My Posh
Oh My Posh 是一個開源的終端機提示工具,用於美化和自訂終端機的 prompt。
要安裝 Oh My Posh
的話,先確認一下有沒有 winget
這個套件管理工具。
在 Windows Terminal
執行 winget,有看到以下畫面的話代表是有安裝的。
如果沒有安裝 winget
的話,可以參考官方其他的安裝方法。
安裝 Oh My Posh
這邊用 winget
來 demo 如何安裝,在 Windows Terminal
執行以下指令來安裝 Oh My Posh
。
winget install JanDeDobbeleer.OhMyPosh -s winget
安裝完以後,在 Windows Terminal
執行以下指令。
oh-my-posh
再執行以下指令,來套用預設主題。
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\jandedobbeleer.omp.json" | Invoke-Expression
Themes
如果不喜歡預設的主題,也可以來這裡挑你喜歡的主題。
找到喜歡的主題後,把主題名稱
換成你想要的主題名稱。
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\主題名稱.omp.json" | Invoke-Expression
儲存主題
現在設定完以後,只要我們開新的 Terminal
,會發現主題遺失了。
執行以下指令來查看自己的 shell
是哪種,然後在照著官網的步驟執行。
oh-my-posh get shell
我這邊以 powershell
demo 怎麼儲存主題,
先執行以下指令來建立 Microsoft.PowerShell_profile.ps1
檔案,我們需要這個檔案來保存主題。
New-Item -Path $PROFILE -Type File -Force
之後使用 notepad
打開
notepad $PROFILE
把剛剛套用主題的指令貼到檔案內,然後儲存。
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\night-owl.omp.json" | Invoke-Expression
最後再執行以下指令,就會看到主題更改成功了。
. $PROFILE
VS Code
要是 VS Code
的 Terminal
有出現 icon
亂碼的問題,可以在 VS Code
的 settings.json
把我們下載的字體補上:
{
"terminal.integrated.fontFamily": "'FiraCode Nerd Font'"
}
History Autocomplete
順便記錄一下要怎麼讓我們的 Windows Terminal
支援 History Autocomplete
先安裝 PSReadLine
Install-Module PSReadLine -Force
確認是否安裝成功
設定 History Autocomplete
Set-PSReadLineOption -PredictionSource History
之後將 Windows Terminal
關閉後重新開啟,並執行以下指令:
Set-PSReadLineOption -PredictionViewStyle ListView
現在應該會看到 Autocomplete 的呈現方式變成 List 了
但現在重開 Windows Terminal
後,會發現 List 消失了。
所以執行
notepad $PROFILE
把以下這段貼到檔案中
Set-PSReadLineOption -PredictionViewStyle ListView
Terminal-Icons
最後安裝 Terminal-Icons
Install-Module -Name Terminal-Icons -Repository PSGallery -Force
執行
notepad $PROFILE
把以下這段貼到檔案中
Import-Module Terminal-Icons