PSReadLine 模組提供將 PSReadLine 函式對應至鍵盤和弦的按鍵處理程式。 鍵盤和弦是一或多個同時按下的按鍵序列。
例如,和弦 Ctrl+空格鍵 是 同時按下 Ctrl 和 空格鍵 的組合。
PSReadLine 函式是可在命令行上執行的預先定義動作。 例如,MenuComplete 函數可讓您在功能表中選擇一個選項清單,從而完成命令行上的輸入。
PSReadLine 預設有數個預先定義的金鑰處理程式。 您也可以定義自己的自訂金鑰處理程式。 執行下列命令來列出目前定義的金鑰處理程式。
Get-PSReadLineKeyHandler
您也可以取得所有未綁定且可供綁定至鍵組合的 PSReadLine 函式清單。
Get-PSReadLineKeyHandler -Unbound
您可以使用 Set-PSReadLineKeyHandler Cmdlet 將函式系結至金鑰處理程式。 下列命令會將函 MenuComplete 式系結至和弦 Ctrl+空格鍵。
Set-PSReadLineKeyHandler -Chord 'Ctrl+Spacebar' -Function MenuComplete
尋找音調名稱和和弦關聯
和弦中的鍵名稱與列舉 [System.ConsoleKey] 中的名稱相符。 如需詳細資訊,請參閱 System.ConsoleKey 檔。 例如,中的 [System.ConsoleKey] 鍵名稱是 D2,而數字鍵臺上的 2 鍵名稱是 NumPad2。 您可以使用 [System.Console]::ReadKey() 方法來尋找您按下的按鍵名稱。
[System.Console]::ReadKey()
以下輸出顯示 ReadKey() 方法為 Ctrl+2 鍵和弦所傳回的資訊。
KeyChar Key Modifiers
------- --- ---------
D2 Control
針對 PSReadLine 鍵處理程序 Cmdlet,這個和弦會表示為 Ctrl+D2。 下列範例會將這個和弦綁定到函式。
Set-PSReadLineKeyHandler -Chord 'Ctrl+D2' -Function MenuComplete
您可以將多個線系結至單一函式。 根據預設,函 BackwardDeleteChar 式會系結至兩個和弦。
Get-PSReadLineKeyHandler -Chord Backspace, Ctrl+h
Key Function Description
--- -------- -----------
Backspace BackwardDeleteChar Delete the character before the cursor
Ctrl+h BackwardDeleteChar Delete the character before the cursor
備註
Chord 參數區分大小寫。 也就是說,您可以為 Ctrl+ 和 Ctrl+x 建立不同的系結。
在 Windows 上,您也可以使用 Alt+? 鍵和弦來顯示系結至您所輸入下一個按鍵和弦的函式。 當你輸入 Alt+?,你會看到以下提示:
what-is-key:
當你按下 退格 鍵時,會得到以下回應:
Backspace: BackwardDeleteChar - Delete the character before the cursor
非 Windows 電腦上的金鑰處理程式
鍵盤產生的按鍵代碼會因作業系統和終端機應用程式而異。
macOS
Macintosh 鍵盤沒有 Alt 鍵,例如 Windows 和 Linux 系統。 相反地,它有 ⌥ Option 鍵。 macOS 使用此金鑰的方式與其他系統上 的 Alt 鍵不同。 不過,您可以在macOS上設定終端機和iTerm2 應用程式,將其視為 Alt 鍵。
設定終端機應用程式
從應用程式行開啟 [ 設定 ] 視窗,Terminal.app。 選取 [配置檔 ],然後選擇您想要設定的設定檔。 選取組態選項的 [鍵盤 ] 索引標籤。 在金鑰清單下方,選取 [使用選項作為中繼金鑰 ] 設定。 此設定可讓 ⌥ Option 鍵在終端機應用程式中做為 Alt 。
設定iTerm2應用程式
從 iTerm.app 中的 [應用程式行] 開啟 [ 設定 ] 視窗。 選取 [配置檔 ],然後選擇您想要設定的設定檔。 選取設定選項的 金鑰 標籤。 針對 [左選項鍵] 和 [右選項金鑰] 設定,選取 Esc+ 選項。 此設定可讓 ⌥ Option 鍵在 iTerm 應用程式中做為 Alt 。
備註
具體步驟會依 macOS 版本和終端機應用程式而有所不同。 這些範例是在 macOS Ventura 13.2.1 和 iTerm2 v3.4.16 上擷取。
Linux
在Linux平臺上,產生的金鑰程式代碼與其他系統不同。 例如:
Ctrl+[ 與 Escape 相同
Ctrl+空格鍵 會產生 Ctrl+D2 的按鍵碼。 如果你想把函式映射到 Ctrl+空白鍵,你必須使用 和弦
Ctrl+D2。Set-PSReadLineKeyHandler -Chord 'Ctrl+D2' -Function MenuComplete
ReadKey()使用方法來驗證鍵盤所產生的按鍵碼。
常用的按鍵處理程式
以下是一些在 Windows 上預設系結的常用密鑰處理程式。 非 Windows 平台的按鍵綁定可能不同。
選單完成
從可能完成值的功能表中選取 ,以完成輸入。
預設與弦: Ctrl+Spacebar
下列範例顯示以 select 開頭的命令可能的完成選單。
PS C:\> select<Ctrl+Spacebar>
select Select-Object Select-PSFPropertyValue Select-Xml
Select-AzContext Select-PSFConfig Select-PSMDBuildProject
Select-AzSubscription Select-PSFObject Select-String
Select-Object
使用箭號鍵來選取您想要的完成。 按 Enter 鍵以完成輸入。 當您在選項中移動時,所選命令的說明會顯示在選單下方。
清屏
此函式會清除螢幕,類似於執行 cls 或 clear 命令時的效果。
預設與弦: Ctrl+l
SelectCommandArgument (選擇命令參數)
選取命令行上的下一個自變數。
預設與弦: Alt+a
你可能在歷史紀錄中有命令想用不同參數值再次執行。 您可以使用和弦來迴圈每個參數,並視需要變更值。
New-AzVM -ResourceGroupName myRGName -Location eastus -Name myVM
按 Alt+鍵會接著選取下一個參數自變數:myRGName、、 eastusmyVM。
GotoBrace
將游標移至相符的括號。
預設與弦: Ctrl+]
這個GotoBrace功能會將游標移動到指令列中與當前游標位置相對應的閉合括號。 該函數適用於括號 ([])、大括號 ({})、以及圓括號 (())。
DigitArgument
開始或累積一個數值參數,以指定的次數重複按鍵。
預設和弦: Alt+0 通過 Alt+9
例如,在命令行上輸入 Alt+4+#####。