Set-PSReadLineKeyHandler (PSReadLine)
Set-PSReadLineKeyHandler
- Модуль:
- PSReadLine
Привязывает клавиши к пользовательским функциям обработчика клавиш или 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 настраивает результат при нажатии клавиши или последовательности клавиш. С помощью определяемых пользователем привязок клавиш вы можете делать практически все, что возможно, из сценария 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.
- Тип :
String
- Позиция:
Именованный
- Значение по умолчанию:
None
- Необходимый:
False
- Примите ввод конвейера:
False
- Принимайте подстановочные знаки:
False
-Chord
Клавиша или последовательность клавиш, которые будут привязаны к функциональному блоку или блоку сценария. Используйте одну строку, чтобы указать одну привязку. Если привязка представляет собой последовательность ключей, разделяйте ключи запятой. Например: Ctrl+x,Ctrl+l
Ссылки на буквенные клавиши определяются строчными буквами. Если вы хотите определить аккорд, в котором используются заглавные буквы, аккорд должен включать клавишу Shift. Например, Ctrl+Shift+x и Ctrl+x создают разные привязки.
Этот параметр принимает массив строк. Каждая строка представляет собой отдельную привязку, а не последовательность ключей для одной привязки.
- Тип :
String[]
- Псевдонимы:
Key
- Позиция:
0
- Значение по умолчанию:
None
- Необходимый:
True
- Примите ввод конвейера:
False
- Принимайте подстановочные знаки:
False
-Description
Задает более подробное описание привязки клавиш, которое отображается в выходных данных командлета Get-PSReadLineKeyHandler.
- Тип :
String
- Псевдонимы:
LongDescription
- Позиция:
Именованный
- Значение по умолчанию:
None
- Необходимый:
False
- Примите ввод конвейера:
False
- Принимайте подстановочные знаки:
False
-Function
Указывает имя существующего обработчика ключей, предоставленного PSReadLine. Этот параметр позволяет повторно привязать существующие привязки клавиш или привязать обработчик, который в данный момент не привязан.
- Тип :
String
- Позиция:
1
- Значение по умолчанию:
None
- Необходимый:
True
- Примите ввод конвейера:
False
- Принимайте подстановочные знаки:
False
-ScriptBlock
Указывает значение блока сценария, который будет выполняться при вводе аккорда. PSReadLine передает в этот блок сценария один или два параметра. Первый параметр — это объект ConsoleKeyInfo, представляющий нажатую клавишу. Вторым аргументом может быть любой объект в зависимости от контекста.
- Тип :
ScriptBlock
- Позиция:
1
- Значение по умолчанию:
None
- Необходимый:
True
- Примите ввод конвейера:
False
- Принимайте подстановочные знаки:
False
-ViMode
Укажите, к какому режиму vi применяется привязка.
Допустимые значения:
InsertCommand- Тип :
ViMode
- Позиция:
Именованный
- Значение по умолчанию:
None
- Необходимый:
False
- Примите ввод конвейера:
False
- Принимайте подстановочные знаки:
False
Входы
Нет
Вы не можете передавать объекты в этот командлет.
Выходы
Нет
Этот командлет не возвращает никаких результатов.