共用方式為


使用 PSReadLine 金鑰處理程式

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

Terminal.app 設定的螢幕快照。

設定iTerm2應用程式

從 iTerm.app 中的 [應用程式行] 開啟 [ 設定 ] 視窗。 選取 [配置檔 ],然後選擇您想要設定的設定檔。 選取設定選項的 金鑰 標籤。 針對 [左選項鍵] 和 [右選項金鑰] 設定,選取 Esc+ 選項。 此設定可讓 ⌥ Option 鍵在 iTerm 應用程式中做為 Alt

iTerm.app 設定的螢幕快照。

備註

具體步驟會依 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 鍵以完成輸入。 當您在選項中移動時,所選命令的說明會顯示在選單下方。

清屏

此函式會清除螢幕,類似於執行 clsclear 命令時的效果。

預設與弦: 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+#####

另請參閱