共用方式為


Set-PSReadLineKeyHandler

將金鑰系結至使用者定義的或 PSReadLine 金鑰處理程式函式。

語法

Set-PSReadLineKeyHandler
   [-ScriptBlock] <ScriptBlock>
   [-BriefDescription <String>]
   [-Description <String>]
   [-Chord] <String[]>
   [-ViMode <ViMode>]
   [<CommonParameters>]
Set-PSReadLineKeyHandler
   [-Chord] <String[]>
   [-ViMode <ViMode>]
   [-Function] <String>
   [<CommonParameters>]

Description

Cmdlet Set-PSReadLineKeyHandler 會在按下按鍵或按鍵序列時自定義結果。 使用使用者定義的金鑰系結,您幾乎可以從 PowerShell 腳本中執行任何可能的事情。

範例

範例 1:將箭頭鍵系結至函式

此命令會將向上鍵系結至 HistorySearchBackward 函式。 此函式會搜尋以命令行目前內容開頭的命令行的命令歷程記錄。

Set-PSReadLineKeyHandler -Chord UpArrow -Function HistorySearchBackward

範例 2:將金鑰系結至腳本區塊

此範例示範如何使用單一索引鍵來執行命令。 命令會將索引鍵 Ctrl+b 系結至清除行的腳本區塊、插入 「build」 這個字,然後接受這一行。

Set-PSReadLineKeyHandler -Chord Ctrl+b -ScriptBlock {
    [Microsoft.PowerShell.PSConsoleReadLine]::RevertLine()
    [Microsoft.PowerShell.PSConsoleReadLine]::Insert('build')
    [Microsoft.PowerShell.PSConsoleReadLine]::AcceptLine()
}

參數

-BriefDescription

金鑰系結的簡短描述。 Cmdlet 會顯示 Get-PSReadLineKeyHandler 此描述。

類型:String
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-Chord

要系結至函式或腳本區塊的索引鍵或索引鍵序列。 使用單一字串來指定單一系結。 如果系結是一連串的索引鍵,請以逗號分隔索引鍵。 例如:Ctrl+x,Ctrl+l

字母索引鍵參考是使用小寫字母來定義。 如果您想要定義使用大寫字母的和弦,和弦必須包含 Shift 鍵。 例如, Ctrl+Shift+xCtrl+x 建立不同的系結。

此參數接受字串數位。 每個字串都是個別的系結,而不是單一系結的索引鍵序列。

類型:String[]
別名:Key
Position:0
預設值:None
必要:True
接受管線輸入:False
接受萬用字元:False

-Description

指定 Cmdlet 輸出中可見之索引鍵系結的 Get-PSReadLineKeyHandler 更詳細描述。

類型:String
別名:LongDescription
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-Function

指定 PSReadLine 所提供的現有金鑰處理程式名稱。 此參數可讓您重新系結現有的索引鍵系結,或系結目前未繫結的處理程式。

類型:String
Position:1
預設值:None
必要:True
接受管線輸入:False
接受萬用字元:False

-ScriptBlock

指定要在輸入和弦時執行的腳本區塊值。 PSReadLine 會將一或兩個參數傳遞至此腳本區塊。 第一個 參數是 ConsoleKeyInfo 物件,代表按下的按鍵。 第二個自變數可以是視內容而定的任何物件。

類型:ScriptBlock
Position:1
預設值:None
必要:True
接受管線輸入:False
接受萬用字元:False

-ViMode

指定系結所套用的vi模式。

有效值為:

  • Insert
  • Command
類型:ViMode
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

輸入

None

您無法使用管線將物件傳送至此 Cmdlet。

輸出

None

此 Cmdlet 不會傳回任何輸出。