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 显示。

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

-Chord

要绑定到函数或脚本块的键或键序列。 使用单个字符串指定单个绑定。 如果绑定是键序列,请用逗号分隔键。 例如:Ctrl+x,Ctrl+l

字母键引用是使用小写字母定义的。 如果要定义使用大写字母的同时按下的键,则同时按下的键中必须包含 Shift 键。 例如,Ctrl+Shift+xCtrl+x 会创建不同的绑定。

此参数接受字符串数组。 每个字符串都是一个单独的绑定,而不是单个绑定的键序列。

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

-Description

指定在 Get-PSReadLineKeyHandler cmdlet 的输出中可见的键绑定的更详细说明。

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

-Function

指定 PSReadLine 提供的现有键处理程序的名称。 此参数允许重新绑定现有的键绑定,或绑定当前未绑定的处理程序。

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

-ScriptBlock

指定输入组合键时要运行的脚本块值。 PSReadLine 将一个或两个参数传递给此脚本块。 第一个参数是表示按下的键的 ConsoleKeyInfo 对象。 第二个参数可以是任意对象,具体取决于上下文。

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

-ViMode

指定绑定应用于的 vi 模式。

有效值为:

  • Insert
  • Command
Type:ViMode
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

输入

None

不能通过管道将对象传递给此 cmdlet。

输出

None

此 cmdlet 不返回任何输出。