使用 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 檔。 例如,中的 2 鍵名稱是 ,而數字鍵臺上的 2 鍵名稱是 NumPad2
。 [System.ConsoleKey]
D2
您可以使用 [System.Console]::ReadKey()
方法來尋找您按下的按鍵名稱。
[System.Console]::ReadKey()
下列輸出顯示 Ctrl+2 鍵和弦的 方法所ReadKey()
傳回的資訊。
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 X 和 Ctrl++x 建立不同的系結。
在 Windows 上,您也可以使用 Alt+? 鍵和弦來顯示系結至您所輸入下一個按鍵和弦的函式。 當您輸入 Alt+ 時,您會看到下列提示:
what-is-key:
當您按下 Backspace 金鑰時,會收到下列回應:
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 平臺上的金鑰系結可能不同。
MenuComplete
從可能完成值的功能表中選取 ,以完成輸入。
預設與弦: 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 鍵以完成輸入。 當您瀏覽選取範圍時,選取命令的說明會顯示在功能表下方。
ClearScreen
此函式會清除類似 或 clear
命令的cls
畫面。
預設與弦: Ctrl+l
SelectCommandArgument
選取命令行上的下一個自變數。
預設與弦: Alt+a
您可能在歷程記錄中有命令,而您想要使用不同的參數值再次執行。 您可以使用和弦來迴圈每個參數,並視需要變更值。
New-AzVM -ResourceGroupName myRGName -Location eastus -Name myVM
按 Alt+ 鍵會接著選取下一個參數自變數:、、 。 eastus
myVM
myRGName
GotoBrace
將游標移至相符的大括弧。
預設與弦: Ctrl+]
此函式會將游標移至符合命令行上目前游標位置大括弧的右大括號。 函式適用於括弧 ([]
)、大括弧 ({}
) 和括弧 (()
)。
DigitArgument
啟動或累積數值自變數,以重複擊鍵指定的次數。
預設和弦: Alt+0
通過 Alt+9
例如,在命令行上輸入 Alt+4。####
+#