如何在 PowerShell 中加入鍵盤快速鍵並模擬 Linux shell 下的操作體驗 | The Will Will Web

The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

如何在 PowerShell 中加入鍵盤快速鍵並模擬 Linux shell 下的操作體驗

我在 Windows 命令提示字元有安裝 Clink 工具,可以提供你在命令提示字元 (CMD) 環境下也可以擁有跟 Bash 一樣的操作體驗。但在 Windows PowerShell 底下,就一直沒有類似的工具可以用,但是從 PowerShell 5.1 與 PowerShell Core 6 開始,就可以原生支援擴充 PowerShell 模式下的快速鍵,快來看看怎樣設定吧!

設定自訂的常用鍵盤快速鍵

  1. 首先,開啟 Windows PowerShell 之後,可以先開啟 $PROFILE 檔案

    notepad $PROFILE
    

    請注意:這裡的 $PROFILE 其實是一個變數,儲存的是指向 PowerShell profile 的檔案路徑,用來定義預設的環境變數、客製化執行環境、匯入其他模組、...等等。不同的 PowerShell 執行環境,就可能會指向到不同的 $PROFILE 檔案!

  2. 再者,加入必要的 Set-PSReadlineKeyHandler 命令,設定鍵盤快速建與內建函式的組合

    我目前設定的鍵盤快速鍵並不多,只有以下 4 個,也是我最常用的 4 個:

    # 設定按下 Ctrl+d 可以退出 PowerShell 執行環境
    Set-PSReadlineKeyHandler -Chord ctrl+d -Function ViExit
    
    # 設定按下 Ctrl+w 可以刪除一個單字
    Set-PSReadlineKeyHandler -Chord ctrl+w -Function BackwardDeleteWord
    
    # 設定按下 Ctrl+e 可以移動游標到最後面(End)
    Set-PSReadlineKeyHandler -Chord ctrl+e -Function EndOfLine
    
    # 設定按下 Ctrl+a 可以移動游標到最前面(Begin)
    Set-PSReadlineKeyHandler -Chord ctrl+a -Function BeginningOfLine
    

    設定完成!就是這麼簡單!

深入 Set-PSReadLineKeyHandler 命令 (Cmdlet)

  1. 說明文件

    你可以透過以下命令,開啟 Set-PSReadLineKeyHandler 說明文件:

    Get-Help Set-PSReadLineKeyHandler -Online
    
  2. 設定鍵盤快速鍵

    一個最簡單的鍵盤快速鍵,就是加上一個 -Chord 參數,外加一個 -Function 參數。

    這裡比較需要特別說明的,就是 -Function 參數只能設定內建的 PSReadLine 函式,這些函式你可以透過執行 Get-PSReadLineKeyHandler 命令,列出目前所有系統設定好的快速鍵清單,他會自動幫你分門別類,並且提供一個相當完整的對應表與中文說明,而且你會發現許多意外的、實用的內建快速鍵!

    image

    基本上所有 PSReadline 大致區分以下分類:

    • 基本編輯功能
    • 資料指標移動函式
    • 歷程記錄函式
    • 完成函式
    • 其他函式
    • 選取函式
    • 搜尋函式
  3. 自訂複雜的組合命令

    假設你想在 PowerShell 視窗中按下 Ctrl+Shift+B 組合鍵,就自動輸出 dotnet build -c Release 命令,那麼你可以試試以下設定:

    Set-PSReadLineKeyHandler -Chord Ctrl+Shift+B -ScriptBlock {
        [Microsoft.PowerShell.PSConsoleReadLine]::RevertLine()
        [Microsoft.PowerShell.PSConsoleReadLine]::Insert('dotnet build -c Release')
        [Microsoft.PowerShell.PSConsoleReadLine]::AcceptLine()
    }
    

    設定完成後,直接可以按下 Ctrl+Shift+B 自動輸出建置命令並執行,真是太帥啦!

    這個 Ctrl+Shift+B 組合鍵同時也是 Visual Studio Code / Visual Studio 常用的建置命令!

相關連結