共用方式為


Set-PSReadLineKeyHandler

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

Syntax

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

Description

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

範例

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

此命令會將向上鍵系結至 函式 HistorySearchBackward。 此函式會使用命令行的目前內容作為用來搜尋命令歷程記錄的搜尋字串。

Set-PSReadLineKeyHandler -Chord UpArrow -Function HistorySearchBackward

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

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

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

參數

-BriefDescription

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

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Chord

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

Ctrl+X,Ctrl+L

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

Type:String[]
Aliases:Key
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Description

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

Type:String
Aliases:LongDescription
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Function

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

Type:String
Accepted values:Abort, AcceptAndGetNext, AcceptLine, AddLine, BackwardChar, BackwardDeleteChar, BackwardDeleteLine, BackwardDeleteWord, BackwardKillLine, BackwardKillWord, BackwardWord, BeginningOfHistory, BeginningOfLine, CancelLine, CaptureScreen, CharacterSearch, CharacterSearchBackward, ClearHistory, ClearScreen, Complete, Copy, CopyOrCancelLine, Cut, DeleteChar, DeleteCharOrExit, DeleteEndOfWord, DeleteLine, DeleteLineToFirstChar, DeleteToEnd, DeleteWord, DigitArgument, EndOfHistory, EndOfLine, ExchangePointAndMark, ForwardChar, ForwardDeleteLine, ForwardSearchHistory, ForwardWord, GotoBrace, GotoColumn, GotoFirstNonBlankOfLine, HistorySearchBackward, HistorySearchForward, InsertLineAbove, InsertLineBelow, InvertCase, InvokePrompt, KillLine, KillRegion, KillWord, MenuComplete, MoveToEndOfLine, NextHistory, NextLine, NextWord, NextWordEnd, Paste, PasteAfter, PasteBefore, PossibleCompletions, PrependAndAccept, PreviousHistory, PreviousLine, Redo, RepeatLastCharSearch, RepeatLastCharSearchBackwards, RepeatLastCommand, RepeatSearch, RepeatSearchBackward, ReverseSearchHistory, RevertLine, ScrollDisplayDown, ScrollDisplayDownLine, ScrollDisplayToCursor, ScrollDisplayTop, ScrollDisplayUp, ScrollDisplayUpLine, SearchChar, SearchCharBackward, SearchCharBackwardWithBackoff, SearchCharWithBackoff, SearchForward, SelectAll, SelectBackwardChar, SelectBackwardsLine, SelectBackwardWord, SelectForwardChar, SelectForwardWord, SelectLine, SelectNextWord, SelectShellBackwardWord, SelectShellForwardWord, SelectShellNextWord, SelfInsert, SetMark, ShellBackwardKillWord, ShellBackwardWord, ShellForwardWord, ShellKillWord, ShellNextWord, ShowKeyBindings, SwapCharacters, TabCompleteNext, TabCompletePrevious, Undo, UndoAll, UnixWordRubout, ValidateAndAcceptLine, ViAcceptLine, ViAcceptLineOrExit, ViAppendLine, ViBackwardDeleteGlob, ViBackwardGlob, ViBackwardWord, ViCommandMode, ViDeleteBrace, ViDeleteEndOfGlob, ViDeleteGlob, ViDigitArgumentInChord, ViEditVisually, ViExit, ViGotoBrace, ViInsertAtBegining, ViInsertAtEnd, ViInsertLine, ViInsertMode, ViInsertWithAppend, ViInsertWithDelete, ViJoinLines, ViNextWord, ViSearchHistoryBackward, ViTabCompleteNext, ViTabCompletePrevious, ViYankBeginningOfLine, ViYankEndOfGlob, ViYankEndOfWord, ViYankLeft, ViYankLine, ViYankNextGlob, ViYankNextWord, ViYankPercent, ViYankPreviousGlob, ViYankPreviousWord, ViYankRight, ViYankToEndOfLine, ViYankToFirstChar, WhatIsKey, Yank, YankLastArg, YankNthArg, YankPop
Position:1
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-ScriptBlock

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

Type:ScriptBlock
Position:1
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-ViMode

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

有效值為:

  • 插入
  • 命令
Type:ViMode
Accepted values:Insert, Command
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

輸入

None

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

輸出

None