Set-PSReadlineKeyHandler
将密钥绑定到用户定义的或 PSReadline 密钥处理程序函数。
语法
ScriptBlock
Set-PSReadlineKeyHandler
[-ScriptBlock] <ScriptBlock>
[-Chord] <String[]>
[-BriefDescription <String>]
[-Description <String>]
[-ViMode <ViMode>]
[<CommonParameters>]
Function
Set-PSReadlineKeyHandler
[-Chord] <String[]>
[-Function] <String>
[-ViMode <ViMode>]
[<CommonParameters>]
说明
当按下按键或按键序列时,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
密钥绑定的简要说明。 此说明由 Get-PSReadlineKeyHandler 命令(cmdlet)显示。
参数属性
| 类型: | String |
| 默认值: | None |
| 支持通配符: | False |
| 不显示: | False |
参数集
ScriptBlock
| Position: | Named |
| 必需: | False |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | False |
| 来自剩余参数的值: | False |
-Chord
要绑定到函数或脚本块的键或键序列。 使用单个字符串指定单个绑定。 如果绑定是一系列键,则用逗号分隔键,如以下示例所示:
Ctrl+X,Ctrl+L
此参数接受字符串数组。 每个字符串都是一个单独的绑定,而不是单个绑定的键序列。
参数属性
| 类型: | String[] |
| 默认值: | None |
| 支持通配符: | False |
| 不显示: | False |
| 别名: | 密钥 |
参数集
(All)
| Position: | 0 |
| 必需: | True |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | False |
| 来自剩余参数的值: | False |
-Description
指定在 Get-PSReadlineKeyHandler cmdlet 的输出中显示的键绑定的更详细说明。
参数属性
| 类型: | String |
| 默认值: | None |
| 支持通配符: | False |
| 不显示: | False |
| 别名: | LongDescription |
参数集
ScriptBlock
| Position: | Named |
| 必需: | False |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | False |
| 来自剩余参数的值: | False |
-Function
指定 PSReadline 提供的现有密钥处理程序的名称。 此参数允许你重新绑定现有键绑定,或绑定当前未绑定的处理程序。
参数属性
| 类型: | String |
| 默认值: | None |
| 接受的值: | 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 |
| 支持通配符: | False |
| 不显示: | False |
参数集
Function
| Position: | 1 |
| 必需: | True |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | False |
| 来自剩余参数的值: | False |
-ScriptBlock
指定在输入和弦时要运行的脚本块的值。 PSReadline 将一个或两个参数传递给此脚本块。 第一个参数是表示按下键的 ConsoleKeyInfo 对象。 第二个参数可以是任何对象,具体取决于上下文。
参数属性
| 类型: | ScriptBlock |
| 默认值: | None |
| 支持通配符: | False |
| 不显示: | False |
参数集
ScriptBlock
| Position: | 1 |
| 必需: | True |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | False |
| 来自剩余参数的值: | False |
-ViMode
指定绑定适用的 vi 模式。
有效值为:
- 插入
- 指令
参数属性
| 类型: | ViMode |
| 默认值: | None |
| 接受的值: | Insert, Command |
| 支持通配符: | False |
| 不显示: | False |
参数集
(All)
| Position: | Named |
| 必需: | False |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | False |
| 来自剩余参数的值: | False |
CommonParameters
此 cmdlet 支持通用参数:-Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。 有关详细信息,请参阅 about_CommonParameters。
输入
None
不能通过管道将对象传递给此 cmdlet。