Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
PSReadLine 2.1.0 представила функцию Predictive IntelliSense . Предиктивный IntelliSense предоставляет предложения для полных команд на основе элементов из истории PSReadLine. PSReadLine 2.2.2 расширяет возможности Predictive IntelliSense, добавив поддержку подключаемых модулей, использующих расширенную логику для предоставления предложений для полных команд. Последняя версия PSReadLine 2.2.6 включает прогнозы по умолчанию.
Использование предсказательного IntelliSense
Если прогнозный IntelliSense включен, предлагаемое предсказание отображается как цветной текст за курсором пользователя. Предложения прогнозного IntelliSense помогают новым и опытным пользователям PowerShell обнаруживать, редактировать и выполнять полные команды на основе сопоставления прогнозов. Предложения могут поступать из истории пользователя и доменных плагинов.
Предыдущее изображение показывает предложение по умолчанию InlineView
. Нажатие клавиши RightArrow принимает встроенное предложение. После принятия предложения можно изменить командную строку перед нажатием клавиши ВВОД , чтобы выполнить команду.
PSReadLine также предлагает ListView
презентацию предложений.
В представлении списка можно использовать клавиши со стрелками для прокрутки доступных предложений. Представление списка также показывает источник прогноза.
PSReadLine по умолчанию InlineView
. Вы можете переключаться между InlineView
и ListView
с помощью клавиши F2 . Вы также можете использовать параметр PredictionViewStyleSet-PSReadLineOption
чтобы изменить вид.
Управление прогнозной intelliSense
Чтобы использовать Predictive IntelliSense, необходимо установить более новую версию PSReadLine . Для получения наилучших результатов установите последнюю версию модуля.
Установите PSReadLine с помощью модуля Microsoft.PowerShell.PSResourceGet :
Install-PSResource -Name PSReadLine
PSReadLine можно установить в Windows PowerShell 5.1 или в PowerShell 7 или более поздней версии. Чтобы использовать модули прогнозирования, необходимо работать в PowerShell версии 7.2 или более поздней. Windows PowerShell 5.1 может использовать прогнозатор на основе журнала.
В PSReadLine 2.2.6 прогнозная функция IntelliSense включена по умолчанию в зависимости от следующих условий:
- Если виртуальный терминал (VT) поддерживается и PSReadLine работает в PowerShell 7.2 или более поздней версии, для PredictionSource задано значение .
HistoryAndPlugin
- Если VT поддерживается и PSReadLine работает в PowerShell версии ниже 7.2, PredictionSource устанавливается в значение
History
. - Если VT не поддерживается, для PredictionSource задано значение
None
.
Используйте следующую команду, чтобы просмотреть текущий параметр:
Get-PSReadLineOption | Select-Object -Property PredictionSource
Вы можете изменить источник прогнозирования с помощью командлета с параметром Set-PSReadLineOption
PredictionSource .
PredictionSource можно настроить следующим образом:
None
History
Plugin
HistoryAndPlugin
Замечание
Прогнозы на основе истории приходят из истории, поддерживаемой PSReadLine. Эта история более полная, чем журнал сеансов, который можно просмотреть с помощью Get-History
. Дополнительные сведения см. в разделе История команд документа about_PSReadLine.
Настройка цвета прогнозирования
По умолчанию прогнозы отображаются в светло-сером тексте в той же строке, что и пользователь вводит. Чтобы обеспечить нужды доступности, можно изменить цвет прогнозирования. Цвета определяются с помощью escape-последовательностей ANSI. Для создания escape-последовательностей ANSI можно использовать $PSStyle
.
Set-PSReadLineOption -Colors @{ InlinePrediction = $PSStyle.Background.Blue }
Вы также можете создать собственный. Цвет текста прогнозирования светло-серого цвета по умолчанию можно восстановить с помощью следующей escape-последовательности ANSI.
Set-PSReadLineOption -Colors @{ InlinePrediction = "`e[38;5;238m" }
Дополнительные сведения о настройке цвета прогнозирования и других параметров PSReadLine см. в разделе Set-PSReadLineOption.
Изменение привязки ключей
PSReadLine содержит функции для навигации и принятия прогнозов. Рассмотрим пример.
-
AcceptSuggestion
— Примите текущее встроенное предложение -
AcceptNextSuggestionWord
— Примите следующее слово встроенного предложения -
AcceptSuggestion
построен внутриForwardChar
, который привязан к RightArrow по умолчанию -
AcceptNextSuggestionWord
построен в функцииForwardWord
, которая может быть привязана к CTRL+f
Вы можете использовать командлет Set-PSReadLineKeyHandler
, чтобы изменить назначения клавиш.
Set-PSReadLineKeyHandler -Chord "Ctrl+f" -Function ForwardWord
При использовании этой привязки нажатие клавиш CTRL+F принимает следующее слово встроенной подсказки, когда курсор находится в конце строки, которая редактируется. Вы можете привязать другие клавиши к AcceptSuggestion
и AcceptNextSuggestionWord
для аналогичных функций. Например, вы можете настроить RightArrow так, чтобы он принимал следующее слово в предлагаемом тексте, а не всю фразу целиком.
Set-PSReadLineKeyHandler -Chord "RightArrow" -Function ForwardWord
Использование других подключаемых модулей прогнозатора
Модуль Az.Tools.Predictor был первым подключаемым модулем для Predictive IntelliSense. Он использует машинное обучение для прогнозирования того, какую команду Azure PowerShell вы хотите запустить, и параметры, которые вы хотите использовать. Дополнительные сведения и инструкции по установке см. в разделе "Объявление о общедоступной доступности Az.Tools.Predictor".
Модуль CompletionPredictor добавляет интерфейс IntelliSense для всех элементов, которые могут быть дополнены с помощью клавиши Tab в PowerShell. Если задано значение InlineView
, вы получите обычный интерфейс завершения вкладки. При переключении на ListView
вы получите возможности IntelliSense. Модуль CompletionPredictor можно установить из коллекции PowerShell.
Как уже отмечалось ранее, ListView
показывает источник прогноза. Если установлено несколько подключаемых модулей, прогнозы группируются по источнику, сначала с Историей, а затем каждым подключаемым модулем в порядке их загрузки.
Создание собственного модуля прогнозирования
Вы можете написать собственный прогнозатор с помощью C# для создания скомпилированного модуля PowerShell. Модуль должен реализовать интерфейс System.Management.Automation.Subsystem.Prediction.ICommandPredictor . Этот интерфейс объявляет методы, используемые для запроса результатов прогнозирования и предоставления отзывов.
Дополнительные сведения см. в статье "Создание прогнозатора командной строки".
PowerShell