Использование обработчиков ключей PSReadLine
Модуль PSReadLine предоставляет обработчики ключей, которые сопоставляют функции PSReadLine с аккордами клавиатуры. Аккорды клавиатуры — это последовательность одного или нескольких нажатий клавиш, которые одновременно нажимаются.
Например, аккорд CTRL ПРОБЕЛ — это сочетание клавиш CTRL+ и ПРОБЕЛ, нажимаемых одновременно. Функция PSReadLine — это предопределенное действие, которое можно выполнить в командной строке. Например, MenuComplete
функция позволяет выбрать из списка параметров в меню ввод входных данных в командной строке.
PSReadLine имеет несколько предопределенных обработчиков ключей, привязанных по умолчанию. Вы также можете определить собственные пользовательские обработчики ключей. Выполните следующую команду, чтобы перечислить обработчики ключей, которые в настоящее время определены.
Get-PSReadLineKeyHandler
Вы также можете получить список всех несвязанных функций PSReadLine , доступных для привязки к аккорду ключа.
Get-PSReadLineKeyHandler -Unbound
С помощью командлета Set-PSReadLineKeyHandler
можно привязать функцию к обработчику ключей. Следующая команда привязывает MenuComplete
функцию к аккордной клавише CTRL+ПРОБЕЛ.
Set-PSReadLineKeyHandler -Chord 'Ctrl+Spacebar' -Function MenuComplete
Поиск имен ключей и привязок аккордов
Имена ключей в аккорде определяются [System.ConsoleKey]
перечислением. Дополнительные сведения см . в документации по System.ConsoleKey . Например, имя ключа 2 в [System.ConsoleKey]
D2
, а имя 2 ключа на числовой клавиатуре NumPad2
. Метод можно использовать [System.Console]::ReadKey()
для поиска имени нажатия клавиши.
[System.Console]::ReadKey()
В следующих выходных данных показаны сведения, возвращаемые методом ReadKey()
для аккорда клавиш CTRL+2.
KeyChar Key Modifiers
------- --- ---------
D2 Control
Для командлетов обработчика ключей PSReadLine этот аккорд представлен как Ctrl+D2
. В следующем примере выполняется привязка этого аккорда к функции.
Set-PSReadLineKeyHandler -Chord 'Ctrl+D2' -Function MenuComplete
Можно привязать несколько шнуров к одной функции. По умолчанию BackwardDeleteChar
функция привязана к двум аккордам.
Get-PSReadLineKeyHandler -Chord Backspace, Ctrl+h
Key Function Description
--- -------- -----------
Backspace BackwardDeleteChar Delete the character before the cursor
Ctrl+h BackwardDeleteChar Delete the character before the cursor
Примечание.
Параметр Chord учитывает регистр. Это означает, что можно создать различные привязки для ctrl+X и CTRL+X.
В Windows можно также использовать аккорд клавиши ALT+? для отображения функции, привязанной к следующему ключевому аккорду, который вы вводите. При вводе ALT+ отображается следующая строка:
what-is-key:
При нажатии клавиши Backspace вы получите следующий ответ:
Backspace: BackwardDeleteChar - Delete the character before the cursor
Обработчики ключей на компьютерах, отличных от Windows
Коды ключей, созданные клавиатурой, могут отличаться в зависимости от используемого операционной системы и приложения терминала.
macOS
Клавиатура Macintosh не имеет клавиши ALT , таких как системы Windows и Linux. Вместо этого он имеет ключ параметра ⌥. macOS использует этот ключ не так, как клавиша ALT в других системах. Однако вы можете настроить терминал и приложения iTerm2 в macOS, чтобы рассматривать его как alt-ключ .
Настройка приложения терминала
Откройте окно Параметры в строке приложения в Terminal.app. Выберите профили и выберите профиль, который требуется настроить. Выберите вкладку "Клавиатура " параметров конфигурации. Под списком ключей выберите параметр "Использовать" в качестве параметра метаключа . Этот параметр позволяет ключу параметра ⌥действовать как ALT в приложении терминала.
Настройка приложения iTerm2
Откройте окно Параметры из панели приложений в iTerm.app. Выберите профили и выберите профиль, который требуется настроить. Перейдите на вкладку "Ключи" параметров конфигурации. Выберите параметр ESC+ для параметров клавиши "Левый параметр" и "Правый". Этот параметр позволяет ключу параметра ⌥действовать как ALT в приложении iTerm.
Примечание.
Точные шаги могут отличаться в зависимости от версий macOS и приложений терминала. Эти примеры были записаны в macOS Ventura 13.2.1 и iTerm2 версии 3.4.16.
Linux
На платформах Linux созданный ключ может отличаться от других систем. Например:
Ctrl+[ совпадает с Escape
Ctrl+Spacebar создает коды ключей для CTRL+D2. Если вы хотите сопоставить функцию CTRL+ПРОБЕЛ, необходимо использовать аккорд.
Ctrl+D2
Set-PSReadLineKeyHandler -Chord 'Ctrl+D2' -Function MenuComplete
ReadKey()
Используйте метод для проверки кодов ключей, созданных клавиатурой.
Часто используемые обработчики ключей
Ниже приведены несколько часто используемых обработчиков ключей, привязанных по умолчанию в Windows. Обратите внимание, что привязка ключа может отличаться на платформах, отличных от Windows.
MenuComplete
Выполните входные данные, выбрав в меню возможные значения завершения.
Аккорд по умолчанию: Ctrl+Spacebar
В следующем примере показано меню возможных завершений для команд, начиная с select
.
PS C:\> select<Ctrl+Spacebar>
select Select-Object Select-PSFPropertyValue Select-Xml
Select-AzContext Select-PSFConfig Select-PSMDBuildProject
Select-AzSubscription Select-PSFObject Select-String
Select-Object
Используйте клавиши со стрелками, чтобы выбрать нужное завершение. Нажмите клавишу ВВОД, чтобы завершить входные данные. При переходе по выбранным параметрам под меню отображается справка по выбранной команде.
ClearScreen
Эта функция очищает экран, аналогичный cls
командам или clear
командам.
Аккорд по умолчанию: Ctrl+l
SelectCommandArgument
Выбирает следующий аргумент в командной строке.
Аккорд по умолчанию: Alt+a
В журнале может потребоваться выполнить команду с различными значениями параметров. Вы можете использовать аккорд для циклического перехода по каждому параметру и изменения значения по мере необходимости.
New-AzVM -ResourceGroupName myRGName -Location eastus -Name myVM
При нажатии клавиши ALT+ в свою очередь выбирается следующий аргумент параметра: myRGName
, eastus
, . myVM
GotoBrace
Перемещает курсор в соответствующую фигурную скобку.
Аккорд по умолчанию: Ctrl+]
Эти функции перемещают курсор на закрывающую фигурную скобку, которая соответствует фигурной скобке в текущей позиции курсора в командной строке. Функция работает для квадратных скобок (), фигурных скобок ([]
{}
) и круглых скобок (()
).
DigitArgument
Запуск или накопление числового аргумента, используемого для повторения нажатия клавиш указанного количества раз.
Аккорд по умолчанию: Alt+0
через Alt+9
Например, ввод ALT+4+# в командной ####
строке.
См. также
PowerShell