# 記錄在 PowerShell 安裝 Oh My Posh 的過程

最近發現許多開發者使用 [Oh My Posh](https://ohmyposh.dev/) 來提升 PowerShell 的生產力，因此研究了一下它的安裝方式。本篇文章將記錄我的操作流程，內容主要以完成基礎安裝為主，若需更進階的功能，可參考文章末尾提供的相關連結。

# 安裝流程

1. 開啟 Windows Terminal 的 Windows PowerShell
    
2. 安裝 PowerShell（支援跨平台的版本）
    
    ```powershell
    winget install Microsoft.PowerShell
    ```
    
3. 重新啟動 Windows Terminal，並使用 PowerShell
    
    <div data-node-type="callout">
    <div data-node-type="callout-emoji">💡</div>
    <div data-node-type="callout-text">注意要選擇前一步驟安裝的 PowerShell（版本為 7.x），而非 Windows PowerShell（版本為 5.x）</div>
    </div>
    
4. 檢查下列指令的執行結果是否為 RemoteSigned
    
    ```powershell
    Get-ExecutionPolicy
    ```
    
5. 安裝 Oh My Posh
    
    ```powershell
    winget install JanDeDobbeleer.OhMyPosh -s winget
    ```
    
6. 安裝字型，選擇 Cascadia Code（此指令需要使用系統管理員身分執行）
    
    ```powershell
    oh-my-posh font install --user
    ```
    
7. 重新開啟 Windows Terminal，在「設定 &gt; 設定檔 &gt; PowerShell &gt; 其他設定 &gt; 外觀 &gt; 字體」將字體設為 CaskaydiaCove Nerd Font Mono
    
8. 檢查下列指令的執行結果是否為 pwsh
    
    ```powershell
    oh-my-posh get shell
    ```
    
9. 開啟設定檔
    
    ```powershell
    notepad $PROFILE
    ```
    
    <div data-node-type="callout">
    <div data-node-type="callout-emoji">💡</div>
    <div data-node-type="callout-text">若無法開啟，請執行 <code>New-Item -Path $PROFILE -Type File -Force</code> 指令建立設定檔</div>
    </div>
    
10. 在設定檔中加入以下內容
    
    ```plaintext
    oh-my-posh init pwsh | Invoke-Expression
    ```
    
11. 輸入下列指令使設定檔生效（或是重新開啟 Windows Terminal）
    
    ```powershell
    . $PROFILE
    ```
    

# 小技巧

* 在 Windows Terminal 的「設定 &gt; 設定檔 &gt; PowerShell &gt; 命令列」加入 `-NoLogo` 命令，並重新啟動 Windows Terminal，可將每次啟動顯示的橫幅資訊（如下圖紅框處）隱藏。（[相關文件](https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_pwsh?view=powershell-7.3#-nologo---nol)）
    
    ![](https://cdn.hashnode.com/res/hashnode/image/upload/v1696508202395/2bf9b992-499f-4a93-8634-0cca31d63f48.png align="center")
    
    完整命令如下：
    
    ```plaintext
    "C:\Program Files\PowerShell\7\pwsh.exe" -NoLogo
    ```
    
* 在 Windows Terminal 的「設定 &gt; 設定檔 &gt; PowerShell &gt; 其他設定 &gt; 外觀 &gt; 字型大小」將字型從 12 改為 13，並重新啟動 Windows Terminal，文字接縫處會變得比較漂亮。
    

# 參考資源

* [如何打造一個華麗又實用的 PowerShell 命令輸入環境](https://blog.miniasp.com/post/2021/11/24/PowerShell-prompt-with-Oh-My-Posh-and-Windows-Terminal)
    
    * [打造一個華麗又實用的 PowerShell / Bash 命令輸入環境](https://www.youtube.com/watch?v=MA_gIbs6P1c)
        
    * “PowerShell 7.3 隨附于 PSReadLine 2.2.6。” ([Source](https://learn.microsoft.com/zh-tw/powershell/module/psreadline/about/about_psreadline?view=powershell-7.3))
        
* [Oh My Posh](https://ohmyposh.dev/)
    

# 作業環境

* Windows 11 22H2 Build 22621.2283
    
* Windows Terminal 1.17.11461.0 (已內建)
    
* winget v1.6.2721 (已內建)
    
    ```powershell
    winget --version
    ```
    
* Windows PowerShell 5.1 (已內建)
    
    ```powershell
    $PSVersionTable
    ```
    
* PowerShell 7.3.7
    
* Oh My Posh 18.10.3
    
    ```powershell
    oh-my-posh --version
    ```
