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>]
说明
按下键或键序列时,Set-PSReadLineKeyHandler
cmdlet 自定义结果。 使用用户定义的密钥绑定,可以从 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
密钥绑定的简要说明。 此说明由 Get-PSReadLineKeyHandler
cmdlet 显示。
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Chord
要绑定到函数或脚本块的键或键序列。 使用单个字符串指定单个绑定。 如果绑定是键序列,则用逗号分隔键。 例如:Ctrl+x,Ctrl+l
字母键引用是使用小写字母定义的。 如果要定义使用大写字母的和弦,则和弦必须包含 shift 键。 例如,Ctrl+Shift+x
和 Ctrl+x
创建不同的绑定。
此参数接受字符串数组。 每个字符串都是一个单独的绑定,而不是单个绑定的键序列。
类型: | String[] |
别名: | Key |
Position: | 0 |
默认值: | None |
必需: | True |
接受管道输入: | False |
接受通配符: | False |
-Description
指定 Get-PSReadLineKeyHandler
cmdlet 输出中显示的键绑定的更详细说明。
类型: | 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 不返回任何输出。