Set-PSReadLineKeyHandler
Binds keys to user-defined or PSReadLine key handler functions.
Syntax
ScriptBlock
Set-PSReadLineKeyHandler
[-ScriptBlock] <ScriptBlock>
[-Chord] <String[]>
[-BriefDescription <String>]
[-Description <String>]
[-ViMode <ViMode>]
[<CommonParameters>]
Function
Set-PSReadLineKeyHandler
[-Chord] <String[]>
[-Function] <String>
[-ViMode <ViMode>]
[<CommonParameters>]
Description
The Set-PSReadLineKeyHandler
cmdlet customizes the result when a key or sequence of keys is
pressed. With user-defined key bindings, you can do almost anything that's possible from within a
PowerShell script.
Examples
Example 1: Bind the arrow key to a function
This command binds the up arrow key to the HistorySearchBackward function. This function searches command history for command lines that start with the current contents of the command line.
Set-PSReadLineKeyHandler -Chord UpArrow -Function HistorySearchBackward
Example 2: Bind a key to a script block
This example shows how a single key can be used to run a command. The command binds the key Ctrl+b
to a script block that clears the line, inserts the word "build", and then accepts the line.
Set-PSReadLineKeyHandler -Chord Ctrl+b -ScriptBlock {
[Microsoft.PowerShell.PSConsoleReadLine]::RevertLine()
[Microsoft.PowerShell.PSConsoleReadLine]::Insert('build')
[Microsoft.PowerShell.PSConsoleReadLine]::AcceptLine()
}
Parameters
-BriefDescription
A brief description of the key binding. This description is displayed by the
Get-PSReadLineKeyHandler
cmdlet.
Parameter properties
Type: | String |
Default value: | None |
Supports wildcards: | False |
DontShow: | False |
Parameter sets
ScriptBlock
Position: | Named |
Mandatory: | False |
Value from pipeline: | False |
Value from pipeline by property name: | False |
Value from remaining arguments: | False |
-Chord
The key or sequence of keys to be bound to a function or script block. Use a single string to
specify a single binding. If the binding is a sequence of keys, separate the keys by a comma. For
example: Ctrl+x,Ctrl+l
Letter key references are defined using lowercase letters. If you want to define a chord that uses
an uppercase letter, the chord must include the Shift key. For example, Ctrl+Shift+x
and
Ctrl+x
create different bindings.
This parameter accepts an array of strings. Each string is a separate binding, not a sequence of keys for a single binding.
Parameter properties
Type: | String[] |
Default value: | None |
Supports wildcards: | False |
DontShow: | False |
Aliases: | Key |
Parameter sets
(All)
Position: | 0 |
Mandatory: | True |
Value from pipeline: | False |
Value from pipeline by property name: | False |
Value from remaining arguments: | False |
-Description
Specifies a more detailed description of the key binding that's visible in the output of the
Get-PSReadLineKeyHandler
cmdlet.
Parameter properties
Type: | String |
Default value: | None |
Supports wildcards: | False |
DontShow: | False |
Aliases: | LongDescription |
Parameter sets
ScriptBlock
Position: | Named |
Mandatory: | False |
Value from pipeline: | False |
Value from pipeline by property name: | False |
Value from remaining arguments: | False |
-Function
Specifies the name of an existing key handler provided by PSReadLine. This parameter lets you rebind existing key bindings, or bind a handler that's currently unbound.
Parameter properties
Type: | String |
Default value: | None |
Supports wildcards: | False |
DontShow: | False |
Parameter sets
Function
Position: | 1 |
Mandatory: | True |
Value from pipeline: | False |
Value from pipeline by property name: | False |
Value from remaining arguments: | False |
-ScriptBlock
Specifies a script block value to run when the chord is entered. PSReadLine passes one or two parameters to this script block. The first parameter is a ConsoleKeyInfo object representing the key pressed. The second argument can be any object depending on the context.
Parameter properties
Type: | ScriptBlock |
Default value: | None |
Supports wildcards: | False |
DontShow: | False |
Parameter sets
ScriptBlock
Position: | 1 |
Mandatory: | True |
Value from pipeline: | False |
Value from pipeline by property name: | False |
Value from remaining arguments: | False |
-ViMode
Specify which vi mode the binding applies to.
Valid values are:
Insert
Command
Parameter properties
Type: | ViMode |
Default value: | None |
Supports wildcards: | False |
DontShow: | False |
Parameter sets
(All)
Position: | Named |
Mandatory: | False |
Value from pipeline: | False |
Value from pipeline by property name: | False |
Value from remaining arguments: | False |
CommonParameters
This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction, and -WarningVariable. For more information, see about_CommonParameters.
Inputs
None
You can't pipe objects to this cmdlet.
Outputs
None
This cmdlet returns no output.