美化你的 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

