Set-PSReadLineOption
Настраивает поведение редактирования командной строки в PSReadLine.
Синтаксис
Set-PSReadLineOption
[-EditMode <EditMode>]
[-ContinuationPrompt <String>]
[-HistoryNoDuplicates]
[-AddToHistoryHandler <System.Func`2[System.String,System.Object]>]
[-CommandValidationHandler <System.Action`1[System.Management.Automation.Language.CommandAst]>]
[-HistorySearchCursorMovesToEnd]
[-MaximumHistoryCount <Int32>]
[-MaximumKillRingCount <Int32>]
[-ShowToolTips]
[-ExtraPromptLineCount <Int32>]
[-DingTone <Int32>]
[-DingDuration <Int32>]
[-BellStyle <BellStyle>]
[-CompletionQueryItems <Int32>]
[-WordDelimiters <String>]
[-HistorySearchCaseSensitive]
[-HistorySaveStyle <HistorySaveStyle>]
[-HistorySavePath <String>]
[-AnsiEscapeTimeout <Int32>]
[-PromptText <String[]>]
[-ViModeIndicator <ViModeStyle>]
[-ViModeChangeHandler <ScriptBlock>]
[-PredictionSource <PredictionSource>]
[-PredictionViewStyle <PredictionViewStyle>]
[-Colors <Hashtable>]
[<CommonParameters>]
Описание
Командлет Set-PSReadLineOption
настраивает поведение модуля PSReadLine при редактировании командной строки. Чтобы просмотреть параметры PSReadLine
Параметры, заданные этой командой, применяются только к текущему сеансу. Чтобы сохранить любые параметры, добавьте их в скрипт профиля. Дополнительные сведения см. в about_Profiles и настройке среды оболочки.
Примеры
Пример 1. Настройка переднего плана и фоновых цветов
В этом примере
Set-PSReadLineOption -Colors @{ "Comment"="`e[32;47m" }
Вы можете задать только цвет текста переднего плана. Например, яркий зеленый цвет текста переднего плана для маркера комментария: "Comment"="`e[92m"
.
Пример 2. Настройка стиля колокола
В этом примере PSReadLine ответит на ошибки или условия, требующие внимания пользователя. BellStyle установлен для выдачи звукового сигнала в 1221 Гц для 60 мс.
Set-PSReadLineOption -BellStyle Audible -DingTone 1221 -DingDuration 60
Заметка
Эта функция может не работать во всех узлах на платформах.
Пример 3. Настройка нескольких параметров
Set-PSReadLineOption
может задать несколько параметров с хэш-таблицей.
$PSReadLineOptions = @{
EditMode = "Emacs"
HistoryNoDuplicates = $true
HistorySearchCursorMovesToEnd = $true
Colors = @{
"Command" = "#8181f7"
}
}
Set-PSReadLineOption @PSReadLineOptions
Хэш-таблица $PSReadLineOptions
задает ключи и значения.
Вы можете просмотреть ключи и значения, вводя имя хэш-таблицы, $PSReadLineOptions
в командной строке PowerShell.
Пример 4. Настройка нескольких параметров цвета
В этом примере показано, как задать несколько значений цвета в одной команде.
Set-PSReadLineOption -Colors @{
Command = 'Magenta'
Number = 'DarkGray'
Member = 'DarkGray'
Operator = 'DarkGray'
Type = 'DarkGray'
Variable = 'DarkGreen'
Parameter = 'DarkGreen'
ContinuationPrompt = 'DarkGray'
Default = 'DarkGray'
}
Пример 5. Установка значений цвета для нескольких типов
В этом примере показаны три различных метода настройки цвета маркеров, отображаемых в PSReadLine.
Set-PSReadLineOption -Colors @{
# Use a ConsoleColor enum
"Error" = [ConsoleColor]::DarkRed
# 24 bit color escape sequence
"String" = "$([char]0x1b)[38;5;100m"
# RGB value
"Command" = "#8181f7"
}
Пример 6. Использование ViModeChangeHandler для отображения изменений в режиме Vi
В этом примере создается escape-экран изменения курсора VT в ответ на изменение режима Vi.
function OnViModeChange {
if ($args[0] -eq 'Command') {
# Set the cursor to a blinking block.
Write-Host -NoNewLine "`e[1 q"
} else {
# Set the cursor to a blinking line.
Write-Host -NoNewLine "`e[5 q"
}
}
Set-PSReadLineOption -ViModeIndicator Script -ViModeChangeHandler $Function:OnViModeChange
Функция OnViModeChange задает параметры курсора для режимов Vi: вставка и команда.
ViModeChangeHandler использует поставщик Function:
для ссылки на OnViModeChange в качестве объекта блока скрипта.
Дополнительные сведения см. в about_Providers.
Пример 7. Использование HistoryHandler для фильтрации команд, добавленных в журнал
В следующем примере показано, как использовать AddToHistoryHandler
для предотвращения сохранения команд Git в журнал.
$ScriptBlock = {
Param([string]$line)
if ($line -match "^git") {
return $false
} else {
return $true
}
}
Set-PSReadLineOption -AddToHistoryHandler $ScriptBlock
Блок скрипта возвращает $false
, если команда запущена с git
. Это имеет тот же эффект, что и возврат перечисления SkipAdding
AddToHistory. Если команда не начинается с git
, обработчик возвращает $true
и PSReadLine сохраняет команду в журнале.
Пример 8. Использование CommandValidationHandler для проверки команды перед выполнением команды
В этом примере показано, как использовать параметр CommandValidationHandler для выполнения команды перед выполнением команды. В примере специально проверяется наличие команды git
с помощью cmt
вложенной команды и заменяет ее полным именем commit
. Таким образом можно создать сокращенные псевдонимы для вложенных команд.
# Load the namespace so you can use the [CommandAst] object type
using namespace System.Management.Automation.Language
Set-PSReadLineOption -CommandValidationHandler {
param([CommandAst]$CommandAst)
switch ($CommandAst.GetCommandName()) {
'git' {
$gitCmd = $CommandAst.CommandElements[1].Extent
switch ($gitCmd.Text) {
'cmt' {
[Microsoft.PowerShell.PSConsoleReadLine]::Replace(
$gitCmd.StartOffset, $gitCmd.EndOffset - $gitCmd.StartOffset, 'commit')
}
}
}
}
}
# This checks the validation script when you hit enter
Set-PSReadLineKeyHandler -Chord Enter -Function ValidateAndAcceptLine
Пример 9. Использование параметра PromptText
При возникновении ошибки синтаксического анализа PSReadLine изменяет часть запроса красным цветом. Параметр PromptText сообщает PSReadLine части строки запроса, чтобы сделать красным.
Например, в следующем примере создается запрос, содержащий текущий путь, за которым следует символ (>
) и пробел.
function prompt { "PS $pwd> " }`
Set-PSReadLineOption -PromptText '> ' # change the '>' character red
Set-PSReadLineOption -PromptText '> ', 'X ' # replace the '>' character with a red 'X'
Первая строка — это часть строки запроса, которую нужно сделать красной при возникновении ошибки синтаксического анализа. Вторая строка — это альтернативная строка, используемая при возникновении ошибки синтаксического анализа.
Параметры
-AddToHistoryHandler
Задает
ScriptBlock получает командную строку в качестве входных данных.
ScripBlock должен возвращать элемент перечисления AddToHistoryOption, строковое имя одного из этих элементов или логическое значение. В приведенном ниже списке описываются возможные значения и их эффекты.
-
MemoryAndFile
. Добавьте команду в файл журнала и текущий сеанс. -
MemoryOnly
. Добавьте команду в журнал только для текущего сеанса. -
SkipAdding
. Не добавляйте команду в файл журнала для текущего сеанса. -
$false
— то же, что и значениеSkipAdding
. -
$true
— то же, что и значениеMemoryAndFile
.
Тип: | Func<T,TResult>[System.String,System.Object] |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-AnsiEscapeTimeout
Этот параметр зависит от Windows при перенаправлении входных данных, например при выполнении tmux
или screen
.
При перенаправлении входных данных в Windows многие ключи отправляются в виде последовательности символов, начиная с escape-символа. Невозможно различать один escape-символ, за которым следует больше символов и допустимую последовательность escape-адресов.
Предполагается, что терминал может отправлять символы быстрее, чем типы пользователей. PSReadLine ожидает этого тайм-аута, прежде чем заключить, что он получил полную escape-последовательность.
Если при вводе отображаются случайные или непредвиденные символы, можно настроить это время ожидания.
Тип: | Int32 |
Position: | Named |
Default value: | 100 |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-BellStyle
Указывает, как PSReadLine реагирует на различные ошибки и неоднозначные условия.
Допустимые значения приведены следующим образом:
- Audible: короткий сигнал.
- Визуальный: текстовые вспышки кратко.
- Нет: нет отзывов.
Тип: | BellStyle |
Position: | Named |
Default value: | Audible |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Colors
Параметр цвета
Аргумент — это хэш-таблица, в которой ключи указывают элементы и значения, указывающие цвет. Дополнительные сведения см. в about_Hash_Tables.
Цвета могут быть либо значением ConsoleColor, например [ConsoleColor]::Red
, либо допустимой escape-последовательностью ANSI. Допустимые escape-последовательности зависят от терминала. В PowerShell 5.0 пример escape-последовательности для красного текста $([char]0x1b)[91m
. В PowerShell 6 и более поздней версии одна и та же последовательность escape-адресов `e[91m
. Можно указать другие escape-последовательности, включая следующие типы:
Добавлены два параметра цвета для поддержки настройки ListView
в PSReadLine 2.2.0:
ListPredictionColor — задайте цвет для начальных
>
символов и конечных исходных имен, таких как[History]
. По умолчанию он используетDarkYellow
в качестве цвета переднего плана.ListPredictionSelectedColor — задать цвет для указания выбранного элемента списка. По умолчанию он использует
DarkBlack
в качестве цвета фона.Цвет 256
24-разрядный цвет
Передний план, фон или оба
Обратный, полужирный
Дополнительные сведения о коде цветов ANSI см. в статье Википедии escape-коде ANSI.
Допустимые ключи включают:
- ContinuationPrompt: цвет запроса продолжения.
- выделение: цвет выделения. Например, соответствующий текст при поиске в журнале.
- ошибка: цвет ошибки. Например, в запросе.
- выделение: цвет выделения меню или выделенного текста.
- по умолчанию: цвет маркера по умолчанию.
- примечания: цвет маркера комментария.
- ключевое слово: цвет маркера ключевого слова.
- строка: цвет токена строки.
- оператор : цвет маркера оператора.
- переменной: цвет маркера переменной.
- команда: цвет маркера команды.
- параметр: цвет маркера параметра.
- Тип: цвет маркера типа.
- число: цвет маркера числа.
- член: цвет маркера имени члена.
- InlinePrediction: цвет встроенного представления прогнозного предложения.
-
ListPrediction: цвет для ведущего
>
символа и имени источника прогнозирования. - ListPredictionSelected: цвет выбранного прогноза в представлении списка.
Тип: | Hashtable |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-CommandValidationHandler
Задает ScriptBlock, вызываемую из ValidateAndAcceptLine. Если исключение возникает, проверка завершается ошибкой и сообщается об ошибке.
Перед созданием исключения обработчик проверки может поместить курсор в точку ошибки, чтобы упростить исправление. Обработчик проверки также может изменить командную строку на исправление распространенных типографических ошибок.
ValidateAndAcceptLine используется для предотвращения загромождения журнала с командами, которые не могут работать.
Тип: | Action<T>[CommandAst] |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-CompletionQueryItems
Указывает максимальное количество элементов завершения, отображаемых без запроса.
Если число отображаемых элементов больше этого значения, PSReadLine запрашивает да/нет перед отображением элементов завершения.
Тип: | Int32 |
Position: | Named |
Default value: | 100 |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-ContinuationPrompt
Указывает строку, отображаемую в начале последующих строк при вводе многострочного ввода. Значение по умолчанию равно двойному значению знаков (>>
). Допустимая пустая строка.
Тип: | String |
Position: | Named |
Default value: | >> |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-DingDuration
Указывает длительность сигнала, если BellStyle имеет значение Audible.
Тип: | Int32 |
Position: | Named |
Default value: | 50ms |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-DingTone
Задает тон в Герце (Гц) звукового сигнала, если BellStyle установлено значение Audible.
Тип: | Int32 |
Position: | Named |
Default value: | 1221 |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-EditMode
Задает режим редактирования командной строки. Использование этого параметра сбрасывает все привязки ключей, заданные Set-PSReadLineKeyHandler
.
Допустимые значения приведены следующим образом:
- Windows: ключевые привязки эмулируют PowerShell, cmd и Visual Studio.
- Emacs: ключевые привязки эмулируют Bash или Emacs.
- Vi: ключевые привязки эмулируют Vi.
Используйте Get-PSReadLineKeyHandler
, чтобы просмотреть ключевые привязки для текущей настроенной EditMode.
Тип: | EditMode |
Position: | Named |
Default value: | Windows |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-ExtraPromptLineCount
Указывает количество дополнительных строк.
Если запрос охватывает несколько строк, укажите значение для этого параметра. Используйте этот параметр, если вы хотите, чтобы дополнительные строки были доступны, если PSReadLine отображает запрос после отображения некоторых выходных данных. Например, PSReadLine возвращает список завершения.
Этот параметр необходим меньше, чем в предыдущих версиях PSReadLine, но полезен при использовании функции InvokePrompt
.
Тип: | Int32 |
Position: | Named |
Default value: | 0 |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-HistoryNoDuplicates
Этот параметр управляет поведением отзыва. Повторяющиеся команды по-прежнему добавляются в файл журнала. Если этот параметр задан, при отзыве команд отображается только последнее вызов. Повторяющиеся команды добавляются в журнал для сохранения порядка во время отзыва. Однако обычно вы не хотите видеть команду несколько раз при отзыве или поиске в журнале.
По умолчанию свойство -HistoryNoDuplicates:$False
. Вы можете вернуться к True
, используя только SwitchParameter, -HistoryNoDuplicates
.
С помощью следующей команды можно задать значение свойства напрямую:
(Get-PSReadLineOption).HistoryNoDuplicates = $False
Тип: | SwitchParameter |
Position: | Named |
Default value: | False |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-HistorySavePath
Указывает путь к файлу, в котором сохраняется журнал. Компьютеры под управлением Windows или не windows хранят файл в разных расположениях. Имя файла хранится в переменной $($Host.Name)_history.txt
, например ConsoleHost_history.txt
.
Если этот параметр не используется, путь по умолчанию выглядит следующим образом:
Windows
$env:APPDATA\Microsoft\Windows\PowerShell\PSReadLine\$($Host.Name)_history.txt
, отличных от Windows
$env:XDG_DATA_HOME/powershell/PSReadLine/$($Host.Name)_history.txt
$HOME/.local/share/powershell/PSReadLine/$($Host.Name)_history.txt
Тип: | String |
Position: | Named |
Default value: | A file named $($Host.Name)_history.txt in $env:APPDATA\Microsoft\Windows\PowerShell\PSReadLine on Windows and $env:XDG_DATA_HOME/powershell/PSReadLine or $HOME/.local/share/powershell/PSReadLine on non-Windows platforms |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-HistorySaveStyle
Указывает, как PSReadLine сохраняет журнал.
Допустимые значения приведены следующим образом:
-
SaveIncrementally
. Сохранение журнала после выполнения каждой команды и совместного использования в нескольких экземплярах PowerShell. -
SaveAtExit
. Добавление файла журнала при выходе PowerShell. -
SaveNothing
: не используйте файл журнала.
Заметка
Если HistorySaveStyleSaveNothing
, а затем задать для него значение SaveIncrementally
позже в том же сеансе, PSReadLine сохраняет все команды, которые ранее выполнялись в сеансе.
Тип: | HistorySaveStyle |
Position: | Named |
Default value: | SaveIncrementally |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-HistorySearchCaseSensitive
Указывает, что поиск по журналу учитывает регистр в таких функциях, как ReverseSearchHistory или HistorySearchBackward.
По умолчанию свойство True
. Чтобы изменить значение свойства обратно, необходимо указать значение SwitchParameter следующим образом: -HistorySearchCaseSensitive:$False
.
С помощью следующей команды можно задать значение свойства напрямую:
(Get-PSReadLineOption).HistorySearchCaseSensitive = $False
Тип: | SwitchParameter |
Position: | Named |
Default value: | False |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-HistorySearchCursorMovesToEnd
Указывает, что курсор перемещается в конец команд, загруженных из журнала с помощью поиска.
Если для этого параметра задано значение $False
, курсор остается в положении, когда вы нажимали стрелки вверх или вниз.
По умолчанию свойство HistorySearchCursorMovesToEndглобального объекта PSConsoleReadLineOptions имеет значение False
. С помощью этого SwitchParameter задайте для свойства значение True
. Чтобы изменить значение свойства обратно, необходимо указать значение SwitchParameter следующим образом: -HistorySearchCursorMovesToEnd:$False
.
С помощью следующей команды можно задать значение свойства напрямую:
(Get-PSReadLineOption).HistorySearchCursorMovesToEnd = $False
Тип: | SwitchParameter |
Position: | Named |
Default value: | False |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-MaximumHistoryCount
Указывает максимальное количество команд для сохранения в журнале PSReadLine.
журнал PSReadLine отличается от журнала PowerShell.
Тип: | Int32 |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-MaximumKillRingCount
Указывает максимальное количество элементов, хранящихся в круге убийства.
Тип: | Int32 |
Position: | Named |
Default value: | 10 |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-PredictionSource
Указывает источник для PSReadLine для получения прогнозных предложений.
Допустимые значения:
- None — отключите прогнозную функцию IntelliSense (по умолчанию).
- журнал — включите функцию прогнозного intelliSense и используйте журнал PSReadLine в качестве единственного источника.
-
подключаемый модуль — включите функцию прогнозного intelliSense и используйте подключаемые модули (
CommandPrediction
) в качестве единственного источника. Это значение было добавлено в PSReadLine 2.2.0 - HistoryAndPlugin — включите прогнозную функцию IntelliSense и используйте журнал и подключаемый модуль в качестве источников. Это значение было добавлено в PSReadLine 2.2.0
Тип: | Microsoft.PowerShell.PredictionSource |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-PredictionViewStyle
Задает стиль для отображения прогнозного текста. Значение по умолчанию — InlineView.
- InlineView - стиль, как существующий сегодня, как и в рыбной оболочке и zsh. (по умолчанию)
- ListView — предложения отображаются в раскрывающемся списке, и пользователи могут выбрать UpArrow и DownArrow.
Этот параметр был добавлен в PSReadLine 2.2.0
Тип: | Microsoft.PowerShell.PredictionViewStyle |
Position: | Named |
Default value: | InlineView |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-PromptText
Этот параметр задает значение свойства PromptText. Значение по умолчанию — "> "
.
PSReadLine анализирует функцию запроса, чтобы определить, как изменить только цвет части запроса. Этот анализ не является 100% надежным. Используйте этот параметр, если PSReadLine изменяет запрос неожиданным образом. Включите все конечные пробелы.
Значение этого параметра может быть одной строкой или массивом двух строк. Первая строка — это часть строки запроса, которую необходимо изменить на красную, когда возникает ошибка синтаксического анализа. Вторая строка — это альтернативная строка, используемая при возникновении ошибки синтаксического анализа.
Тип: | String[] |
Position: | Named |
Default value: | > |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-ShowToolTips
При отображении возможных завершений подсказки отображаются в списке завершения.
Этот параметр включен по умолчанию. Этот параметр по умолчанию не был включен в предыдущих версиях PSReadLine. Чтобы отключить, задайте для этого параметра значение $False
.
По умолчанию свойство showToolTips True
. Чтобы изменить значение свойства, необходимо указать значение SwitchParameter следующим образом: -ShowToolTips:$False
.
С помощью следующей команды можно задать значение свойства напрямую:
(Get-PSReadLineOption).ShowToolTips = $False
Тип: | SwitchParameter |
Position: | Named |
Default value: | True |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-ViModeChangeHandler
Если для ViMode
.
Этот параметр появился в PowerShell 7.
Тип: | ScriptBlock |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-ViModeIndicator
Этот параметр задает визуальный индикатор для текущего режима Vi. Режим вставки или режим команд.
Допустимые значения приведены следующим образом:
- Нет: нет индикатора.
- запрос: запрос изменяет цвет.
- курсор: размер курсора изменяется.
- скрипт: выводится указанный пользователем текст.
Тип: | ViModeStyle |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-WordDelimiters
Задает символы, разделяющие слова для функций, таких как ForwardWord или KillWord.
Тип: | String |
Position: | Named |
Default value: | ;:,.[]{}()/\|^&*-=+'"--- |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
Входные данные
None
Невозможно передать объекты в этот командлет.
Выходные данные
None
Этот командлет не возвращает выходные данные.