about_PSReadLine_Functions
Краткое описание
PSReadLine предоставляет улучшенный интерфейс редактирования командной строки в консоли PowerShell.
Полное описание
PowerShell 5.1 поставляется с PSReadLine 2.0.0. Текущая версия — PSReadLine 2.3.4. Текущую версию PSReadLine можно установить и использовать в Windows PowerShell 5.1 и более поздней. Для некоторых функций необходимо запустить PowerShell 7.2 или более поздней версии.
В этой статье описаны функции, предоставляемые PSReadLine. Эти функции можно привязать к нажатиям клавиш для простого доступа и вызова.
Использование класса Microsoft.PowerShell.PSConsoleReadLine
Следующие функции доступны в классе Microsoft.PowerShell.PSConsoleReadLine.
Основные функции редактирования
Abort
Прервать текущее действие, например поиск добавочного журнала.
- Режим Emacs:
<Ctrl+g>
AcceptAndGetNext
Попытайтесь выполнить текущие входные данные. Если его можно выполнить (например, AcceptLine), помните следующий элемент из журнала при следующем вызове ReadLine.
- Режим Emacs:
<Ctrl+o>
AcceptLine
Попытайтесь выполнить текущие входные данные. Если текущий вход является неполным (например, отсутствует закрывающая скобка, скобка или кавычка), то запрос продолжения отображается в следующей строке, и PSReadLine ожидает, пока ключи будут изменять текущие входные данные.
- Режим Windows:
<Enter>
- Режим Emacs:
<Enter>
- Режим вставки vi:
<Enter>
AddLine
Запрос продолжения отображается в следующей строке, а PSReadLine ожидает изменения текущих входных данных. Это полезно, чтобы ввести многострочные входные данные в виде одной команды, даже если одна строка завершает входные данные самостоятельно.
- Режим Windows:
<Shift+Enter>
- Режим Emacs:
<Shift+Enter>
- Режим вставки vi:
<Shift+Enter>
- Режим команды Vi:
<Shift+Enter>
НазадDeleteChar
Удалите символ перед курсором.
- Режим Windows:
<Backspace>
,<Ctrl+h>
- Режим Emacs:
<Backspace>
,<Ctrl+Backspace>
<Ctrl+h>
- Режим вставки vi:
<Backspace>
- Режим команды Vi:
<X>
,<d,h>
НазадDeleteLine
Как и НазадKillLine — удаляет текст из точки до начала строки, но не помещает удаленный текст в кольцо убийства.
- Режим Windows:
<Ctrl+Home>
- Режим вставки vi:
<Ctrl+u>
,<Ctrl+Home>
- Режим команды Vi:
<Ctrl+u>
,<Ctrl+Home>
<d,0>
НазадDeleteWord
Удаляет предыдущее слово.
- Режим команды Vi:
<Ctrl+w>
,<d,b>
НазадKillLine
Снимите входные данные с начала входных данных курсора. Очищаемый текст помещается в кольцо убийства.
- Режим Emacs:
<Ctrl+u>
,<Ctrl+x,Backspace>
НазадKillWord
Снимите входные данные с начала текущего слова на курсор. Если курсор находится между словами, входные данные очищаются от начала предыдущего слова до курсора. Очищаемый текст помещается в кольцо убийства.
- Режим Windows:
<Ctrl+Backspace>
- Режим Emacs:
<Alt+Backspace>
,<Escape,Backspace>
- Режим вставки vi:
<Ctrl+Backspace>
- Режим команды Vi:
<Ctrl+Backspace>
CancelLine
Отмените текущие входные данные, оставив входные данные на экране, но вернитесь на узел, чтобы запрос был оценен снова.
- Режим вставки vi:
<Ctrl+c>
- Режим команды Vi:
<Ctrl+c>
Копия
Скопируйте выбранный регион в системный буфер обмена. Если регион не выбран, скопируйте всю строку.
- Режим Windows:
<Ctrl+C>
CopyOrCancelLine
Если выбран текст, скопируйте его в буфер обмена, в противном случае отмените строку.
- Режим Windows:
<Ctrl+c>
- Режим Emacs:
<Ctrl+c>
Вырезать
Удаление выбранного региона, размещающего удаленный текст в системном буфере обмена.
- Режим Windows:
<Ctrl+x>
DeleteChar
Удалите символ под курсором.
- Режим Windows:
<Delete>
- Режим Emacs:
<Delete>
- Режим вставки vi:
<Delete>
- Режим команды Vi:
<Delete>
,<x>
,<d,l>
<d,Space>
DeleteCharOrExit
Удалите символ под курсором или если строка пуста, закройте процесс.
- Режим Emacs:
<Ctrl+d>
DeleteEndOfWord
Удалите в конец слова.
- Режим команды Vi:
<d,e>
DeleteLine
Удаляет текущую строку, включив отмену.
- Режим команды Vi:
<d,d>
DeleteLineToFirstChar
Удаляет текст из курсора на первый непустый символ строки.
- Режим команды Vi:
<d,^>
DeleteToEnd
Удаление до конца строки.
- Режим команды Vi:
<D>
,<d,$>
DeleteWord
Удалите следующее слово.
- Режим команды Vi:
<d,w>
ForwardDeleteLine
Как и ForwardKillLine— удаляет текст из точки в конец строки, но не помещает удаленный текст в кольцо убийства.
- Режим Windows:
<Ctrl+End>
- Режим вставки vi:
<Ctrl+End>
- Режим команды Vi:
<Ctrl+End>
InsertLineAbove
Новая пустая строка создается над текущей строкой независимо от того, где курсор находится в текущей строке. Курсор перемещается в начало новой строки.
- Режим Windows:
<Ctrl+Enter>
InsertLineBelow
Новая пустая строка создается под текущей строкой независимо от того, где курсор находится в текущей строке. Курсор перемещается в начало новой строки.
- Режим Windows:
<Shift+Ctrl+Enter>
InvertCase
Переверните регистр текущего символа и перейдите к следующему.
- Режим команды Vi:
<~>
KillLine
Очистите входные данные от курсора до конца входных данных. Очищаемый текст помещается в кольцо убийства.
- Режим Emacs:
<Ctrl+k>
KillRegion
Убьет текст между курсором и меткой.
- Функция не связана.
KillWord
Снимите входные данные с курсора до конца текущего слова. Если курсор находится между словами, входные данные очищаются от курсора до конца следующего слова. Очищаемый текст помещается в кольцо убийства.
- Режим Windows:
<Ctrl+Delete>
- Режим Emacs:
<Alt+d>
,<Escape,d>
- Режим вставки vi:
<Ctrl+Delete>
- Режим команды Vi:
<Ctrl+Delete>
Вставить
Вставьте текст из системного буфера обмена.
- Режим Windows:
<Ctrl+v>
,<Shift+Insert>
- Режим вставки vi:
<Ctrl+v>
- Режим команды Vi:
<Ctrl+v>
Внимание
При использовании функции вставки все содержимое буфера обмена вставляется в входной буфер PSReadLine. Затем входной буфер передается в средство синтаксического анализа PowerShell. Входные данные, вставленные с помощью метода вставки правой кнопкой мыши консольного приложения, копируются в входной буфер один символ за раз. Входной буфер передается в средство синтаксического анализа при копировании нового символа. Поэтому входные данные анализируются по одной строке одновременно. Разница между методами вставки приводит к разному поведению выполнения.
PasteAfter
Вставьте буфер обмена после курсора, переместив курсор в конец вставленного текста.
- Режим команды Vi:
<p>
PasteBefore
Вставьте буфер обмена перед курсором, переместив курсор в конец вставленного текста.
- Режим команды Vi:
<P>
PrependAndAccept
Предопределено значение "#" и примите строку.
- Режим команды Vi:
<#>
Повторить
Отмена отмены.
- Режим Windows:
<Ctrl+y>
- Режим вставки vi:
<Ctrl+y>
- Режим команды Vi:
<Ctrl+y>
RepeatLastCommand
Повторите последнее изменение текста.
- Режим команды Vi:
<.>
RevertLine
Возвращает все входные данные к текущим входным данным.
- Режим Windows:
<Escape>
- Режим Emacs:
<Alt+r>
,<Escape,r>
ShellBackwardKillWord
Снимите входные данные с начала текущего слова на курсор. Если курсор находится между словами, входные данные очищаются от начала предыдущего слова до курсора. Очищаемый текст помещается в кольцо убийства.
Функция не связана.
ShellKillWord
Снимите входные данные с курсора до конца текущего слова. Если курсор находится между словами, входные данные очищаются от курсора до конца следующего слова. Очищаемый текст помещается в кольцо убийства.
Функция не связана.
Буферные диаграммы
Переключите текущий символ и один перед ним.
- Режим Emacs:
<Ctrl+t>
- Режим вставки vi:
<Ctrl+t>
- Режим команды Vi:
<Ctrl+t>
Отмена
Отмена предыдущего изменения.
- Режим Windows:
<Ctrl+z>
- Режим Emacs:
<Ctrl+_>
,<Ctrl+x,Ctrl+u>
- Режим вставки vi:
<Ctrl+z>
- Режим команды Vi:
<Ctrl+z>
,<u>
Отмена перераспределений
Отменяйте все предыдущие изменения для строки.
- Режим команды Vi:
<U>
UnixWordRubout
Снимите входные данные с начала текущего слова на курсор. Если курсор находится между словами, входные данные очищаются от начала предыдущего слова до курсора. Очищаемый текст помещается в кольцо убийства.
- Режим Emacs:
<Ctrl+w>
ValidateAndAcceptLine
Попытайтесь выполнить текущие входные данные. Если текущий вход является неполным (например, отсутствует закрывающая скобка, скобка или кавычка), то запрос продолжения отображается в следующей строке, и PSReadLine ожидает, пока ключи будут изменять текущие входные данные.
- Режим Emacs:
<Ctrl+m>
ViAcceptLine
Примите строку и переключитесь в режим вставки.
- Режим команды Vi:
<Enter>
ViAcceptLineOrExit
Как и DeleteCharOrExit в режиме Emacs, но принимает строку вместо удаления символа.
- Режим вставки vi:
<Ctrl+d>
- Режим команды Vi:
<Ctrl+d>
ViAppendLine
Новая строка вставляется под текущей строкой.
- Режим команды Vi:
<o>
ViBackwardDeleteGlob
Удаляет предыдущее слово, используя только пробелы в качестве разделителя слов.
- Режим команды Vi:
<d,B>
ViBackwardGlob
Перемещает курсор обратно в начало предыдущего слова, используя только пробелы в качестве разделителей.
- Режим команды Vi:
<B>
ViDeleteBrace
Найдите соответствующую скобку, скобки или квадратную скобку и удалите все содержимое внутри, включая фигурную скобку.
- Режим команды Vi:
<d,%>
ViDeleteEndOfGlob
Удалите в конец слова.
- Режим команды Vi:
<d,E>
ViDeleteGlob
Удалите следующий глоб (слово с разделителями пробелов).
- Режим команды Vi:
<d,W>
ViDeleteToBeforeChar
Удаляется до заданного символа.
- Режим команды Vi:
<d,t>
ViDeleteToBeforeCharBackward
Удаляется до заданного символа.
- Режим команды Vi:
<d,T>
ViDeleteToChar
Удаляется до заданного символа.
- Режим команды Vi:
<d,f>
ViDeleteToCharBackward
Удаляет назад до заданного символа.
- Режим команды Vi:
<d,F>
ViInsertAtBegining
Переключитесь в режим вставки и поместите курсор в начало строки.
- Режим команды Vi:
<I>
ViInsertAtEnd
Переключитесь в режим вставки и поместите курсор в конец строки.
- Режим команды Vi:
<A>
ViInsertLine
Новая строка вставляется над текущей строкой.
- Режим команды Vi:
<O>
ViInsertWithAppend
Добавление из текущей позиции строки.
- Режим команды Vi:
<a>
ViInsertWithDelete
Удалите текущий символ и переключитесь в режим вставки.
- Режим команды Vi:
<s>
ViJoinLines
Присоединяется к текущей строке и следующей строке.
- Режим команды Vi:
<J>
ViReplaceLine
Удалите всю командную строку.
- Режим команды Vi:
<S>
,<c,c>
ViReplaceToBeforeChar
Заменяет до заданного символа.
- Режим команды Vi:
<c,t>
ViReplaceToBeforeCharBackward
Заменяет до заданного символа.
- Режим команды Vi:
<c,T>
ViReplaceToChar
Удаляется до заданного символа.
- Режим команды Vi:
<c,f>
ViReplaceToCharBackward
Заменяет до заданного символа.
- Режим команды Vi:
<c,F>
ViYankBeginningOfLine
Янк с начала буфера до курсора.
- Режим команды Vi:
<y,0>
ViYankEndOfGlob
Янк от курсора до конца слов.
- Режим команды Vi:
<y,E>
ViYankEndOfWord
Янк от курсора до конца слов.
- Режим команды Vi:
<y,e>
ViYankLeft
Символы Янк слева от курсора.
- Режим команды Vi:
<y,h>
ViYankLine
Янк весь буфер.
- Режим команды Vi:
<y,y>
ViYankNextGlob
Янк от курсора до начала следующих слов.
- Режим команды Vi:
<y,W>
ViYankNextWord
Янк слова после курсора.
- Режим команды Vi:
<y,w>
ViYankPercent
Янк к/из сопоставления фигурных скобок.
- Режим команды Vi:
<y,%>
ViYankPreviousGlob
Янк с начала word() до курсора.
- Режим команды Vi:
<y,B>
ViYankPreviousWord
Янк слова перед курсором.
- Режим команды Vi:
<y,b>
ViYankRight
Символы Янк под и справа от курсора.
- Режим команды Vi:
<y,l>
,<y,Space>
ViYankToEndOfLine
Янк от курсора до конца буфера.
- Режим команды Vi:
<y,$>
ViYankToFirstChar
Янк из первого символа, отличного от пробела, до курсора.
- Режим команды Vi:
<y,^>
Янки
Добавьте последний убитый текст в входные данные.
- Режим Emacs:
<Ctrl+y>
YankLastArg
Янк последний аргумент из предыдущей строки журнала. При первом вызове аргумента он ведет себя так же, как YankNthArg. Если вызывается несколько раз, вместо этого он выполняет итерацию по журналу и арг задает направление (отрицательное обратно направление.)
- Режим Windows:
<Alt+.>
- Режим Emacs:
<Alt+.>
,<Alt+_>
,<Escape,.>
<Escape,_>
YankNthArg
Янк первый аргумент (после команды) из предыдущей строки журнала. С аргументом yank nth аргумент (начиная с 0), если аргумент отрицательный, начните с последнего аргумента.
- Режим Emacs:
<Ctrl+Alt+y>
,<Escape,Ctrl+y>
YankPop
Если предыдущая операция была Yank или YankPop, замените ранее отклинившийся текст следующим убитым текстом из кольца убийства.
- Режим Emacs:
<Alt+y>
,<Escape,y>
Функции перемещения курсора
Назад
Переместите курсор влево. Это может переместить курсор на предыдущую строку многострочного ввода.
- Режим Windows:
<LeftArrow>
- Режим Emacs:
<LeftArrow>
,<Ctrl+b>
- Режим вставки vi:
<LeftArrow>
- Режим команды Vi:
<LeftArrow>
,<Backspace>
<h>
НазадWord
Переместите курсор обратно в начало текущего слова или, если между словами, начало предыдущего слова. Границы Word определяются настраиваемым набором символов.
- Режим Windows:
<Ctrl+LeftArrow>
- Режим Emacs:
<Alt+b>
,<Escape,b>
- Режим вставки vi:
<Ctrl+LeftArrow>
- Режим команды Vi:
<Ctrl+LeftArrow>
Символы, определяющие границы слов, настраиваются в свойстве WordDelimiters объекта PSConsoleReadLineOptions. Сведения о просмотре или изменении свойства WordDelimiters см. в разделе Get-PSReadLineOption и Set-PSReadLineOption.
НачалоOfLine
Если входные данные имеют несколько строк, перейдите к началу текущей строки или, если она уже находится в начале строки, перейдите к началу входных данных. Если входные данные имеют одну строку, перейдите к началу входных данных.
- Режим Windows:
<Home>
- Режим Emacs:
<Home>
,<Ctrl+a>
- Режим вставки vi:
<Home>
- Режим команды Vi:
<Home>
EndOfLine
Если входные данные имеют несколько строк, перейдите к концу текущей строки или, если она уже находится в конце строки, перейдите к концу входных данных. Если входные данные имеют одну строку, перейдите к концу входных данных.
- Режим Windows:
<End>
- Режим Emacs:
<End>
,<Ctrl+e>
- Режим вставки vi:
<End>
ForwardChar
Переместите курсор вправо. Это может переместить курсор на следующую строку многострочного ввода.
- Режим Windows:
<RightArrow>
- Режим Emacs:
<RightArrow>
,<Ctrl+f>
- Режим вставки vi:
<RightArrow>
- Режим команды Vi:
<RightArrow>
,<Space>
<l>
ForwardWord
Переместите курсор вперед в конец текущего слова или между словами в конец следующего слова. Границы Word определяются настраиваемым набором символов.
- Режим Emacs:
<Alt+f>
,<Escape,f>
Символы, определяющие границы слов, настраиваются в свойстве WordDelimiters объекта PSConsoleReadLineOptions. Сведения о просмотре или изменении свойства WordDelimiters см. в разделе Get-PSReadLineOption и Set-PSReadLineOption.
GotoBrace
Перейдите в соответствующую скобку, скобки или квадратную скобку.
- Режим Windows:
<Ctrl+]>
- Режим вставки vi:
<Ctrl+]>
- Режим команды Vi:
<Ctrl+]>
GotoColumn
Перейдите к столбцу, указанному arg.
- Режим команды Vi:
<|>
GotoFirstNonBlankOfLine
Переместите курсор на первый непустый символ в строке.
- Режим команды Vi:
<^>
MoveToEndOfLine
Переместите курсор в конец входных данных.
- Режим команды Vi:
<End>
,<$>
NextLine
Переместите курсор на следующую строку.
- Функция не связана.
NextWord
Переместите курсор вперед к началу следующего слова. Границы Word определяются настраиваемым набором символов.
- Режим Windows:
<Ctrl+RightArrow>
- Режим вставки vi:
<Ctrl+RightArrow>
- Режим команды Vi:
<Ctrl+RightArrow>
Символы, определяющие границы слов, настраиваются в свойстве WordDelimiters объекта PSConsoleReadLineOptions. Сведения о просмотре или изменении свойства WordDelimiters см. в разделе Get-PSReadLineOption и Set-PSReadLineOption.
NextWordEnd
Переместите курсор вперед в конец текущего слова или между словами в конец следующего слова. Границы Word определяются настраиваемым набором символов.
- Режим команды Vi:
<e>
Символы, определяющие границы слов, настраиваются в свойстве WordDelimiters объекта PSConsoleReadLineOptions. Сведения о просмотре или изменении свойства WordDelimiters см. в разделе Get-PSReadLineOption и Set-PSReadLineOption.
Предыдущая строка
Переместите курсор на предыдущую строку.
- Функция не связана.
ShellBackwardWord
Переместите курсор обратно в начало текущего слова или, если между словами, начало предыдущего слова. Границы Word определяются маркерами PowerShell.
- Функция не связана.
ShellForwardWord
Переместите курсор вперед к началу следующего слова. Границы Word определяются маркерами PowerShell.
- Функция не связана.
ShellNextWord
Переместите курсор вперед в конец текущего слова или между словами в конец следующего слова. Границы Word определяются маркерами PowerShell.
- Функция не связана.
ViBackwardWord
Переместите курсор обратно в начало текущего слова или, если между словами, начало предыдущего слова. Границы Word определяются настраиваемым набором символов.
- Режим команды Vi:
<b>
Символы, определяющие границы слов, настраиваются в свойстве WordDelimiters объекта PSConsoleReadLineOptions. Сведения о просмотре или изменении свойства WordDelimiters см. в разделе Get-PSReadLineOption и Set-PSReadLineOption.
ViEndOfGlob
Перемещает курсор в конец слова, используя только пробелы в качестве разделителей.
- Режим команды Vi:
<E>
ViEndOfPreviousGlob
Перемещается в конец предыдущего слова, используя только пробелы в качестве разделителя слов.
- Функция не связана.
ViGotoBrace
Аналогично GotoBrace, но является символом, основанным вместо маркера.
- Режим команды Vi:
<%>
ViNextGlob
Перемещается к следующему слову, используя только пробелы в качестве разделителя слов.
- Режим команды Vi:
<W>
ViNextWord
Переместите курсор вперед к началу следующего слова. Границы Word определяются настраиваемым набором символов.
- Режим команды Vi:
<w>
Символы, определяющие границы слов, настраиваются в свойстве WordDelimiters объекта PSConsoleReadLineOptions. Сведения о просмотре или изменении свойства WordDelimiters см. в разделе Get-PSReadLineOption и Set-PSReadLineOption.
Функции журнала
НачалоOfHistory
Перейдите к первому элементу в журнале.
- Режим Emacs:
<Alt+<>
ClearHistory
Очищает журнал в PSReadLine. Это не влияет на журнал PowerShell.
- Режим Windows:
<Alt+F7>
EndOfHistory
Перейдите к последнему элементу (текущему входу) в журнале.
- Режим Emacs:
<Alt+>>
ForwardSearchHistory
Выполните добавочный поиск вперед по журналу.
- Режим Windows:
<Ctrl+s>
- Режим Emacs:
<Ctrl+s>
HistorySearchBackward
Замените текущие входные данные элементом из журнала PSReadLine, который соответствует символам между началом и входными данными и курсором.
- Режим Windows:
<F8>
HistorySearchForward
Замените текущие входные данные элементом из журнала PSReadLine, который соответствует символам между началом и входными данными и курсором.
- Режим Windows:
<Shift+F8>
NextHistory
Замените текущие входные данные элементом next из журнала PSReadLine.
- Режим Windows:
<DownArrow>
- Режим Emacs:
<DownArrow>
,<Ctrl+n>
- Режим вставки vi:
<DownArrow>
- Режим команды Vi:
<DownArrow>
,<j>
<+>
Предыдущие Хистория
Замените текущие входные данные элементом "предыдущий" из журнала PSReadLine.
- Режим Windows:
<UpArrow>
- Режим Emacs:
<UpArrow>
,<Ctrl+p>
- Режим вставки vi:
<UpArrow>
- Режим команды Vi:
<UpArrow>
,<k>
<->
ReverseSearchHistory
Выполните добавочный обратный поиск по журналу.
- Режим Windows:
<Ctrl+r>
- Режим Emacs:
<Ctrl+r>
ViSearchHistoryBackward
Запрашивает строку поиска и инициирует поиск по AcceptLine.
- Режим вставки vi:
<Ctrl+r>
- Режим команды Vi:
</>
,<Ctrl+r>
Функции завершения
Завершено
Попытайтесь выполнить завершение текста, окружающего курсор. Если существует несколько возможных завершений, для завершения используется самый длинный однозначный префикс. Если попытаться завершить самое длинное однозначное завершение, отобразится список возможных завершений.
- Режим Emacs:
<Tab>
MenuComplete
Попытайтесь выполнить завершение текста, окружающего курсор. Если существует несколько возможных завершений, для завершения используется самый длинный однозначный префикс. Если попытаться завершить самое длинное однозначное завершение, отобразится список возможных завершений.
- Режим Windows:
<Ctrl+Space>
- Режим Emacs:
<Ctrl+Space>
Возможные компиляции
Отображение списка возможных завершений.
- Режим Emacs:
<Alt+=>
- Режим вставки vi:
<Ctrl+Space>
- Режим команды Vi:
<Ctrl+Space>
TabCompleteNext
Попытайтесь завершить текст, окружающий курсор, с последующим доступным завершением.
- Режим Windows:
<Tab>
- Режим команды Vi:
<Tab>
TabCompletePrevious
Попытайтесь завершить текст, окружающий курсор, с предыдущим доступным завершением.
- Режим Windows:
<Shift+Tab>
- Режим команды Vi:
<Shift+Tab>
ViTabCompleteNext
Завершает текущую группу редактирования( при необходимости) и вызывает TabCompleteNext.
- Режим вставки vi:
<Tab>
ViTabCompletePrevious
Завершает текущую группу редактирования( при необходимости) и вызывает TabCompletePrevious.
- Режим вставки vi:
<Shift+Tab>
Прочие функции
Экран записи
Запуск интерактивного захвата экрана — стрелки вверх и вниз выбирают строки, введите выделенный текст в буфер обмена в виде текста и HTML.
- Функция не связана.
ClearScreen
Снимите экран и нарисуйте текущую строку в верхней части экрана.
- Режим Windows:
<Ctrl+l>
- Режим Emacs:
<Ctrl+l>
- Режим вставки vi:
<Ctrl+l>
- Режим команды Vi:
<Ctrl+l>
DigitArgument
Запустите новый аргумент цифры для передачи другим функциям. Это можно использовать в качестве умножения для следующей функции, вызываемой клавишей. Например, нажатие клавиши <Alt+1>
<Alt+0>
присваивает значению аргумента цифры значение 10. Затем нажатие #
клавиши отправляет 10 #
символов (##########
) в входную строку.
Аналогичным образом это можно использовать с другими операциями, например <Delete>
или Left-Arrow
.
- Режим Windows:
<Alt+0>
,<Alt+1>
<Alt+2>
<Alt+3>
<Alt+4>
<Alt+5>
<Alt+6>
<Alt+7>
<Alt+8>
<Alt+9>
<Alt+->
- Режим Emacs:
<Alt+0>
,<Alt+1>
<Alt+5>
<Alt+6>
<Alt+7>
<Alt+3>
<Alt+4>
<Alt+2>
, ,<Alt+8>
<Alt+9>
<Alt+->
- Режим команды Vi:
<0>
,<1>
<2>
<3>
<4>
<5>
<6>
<7>
<8>
<9>
InvokePrompt
Удаляет текущий запрос и вызывает функцию запроса для повторного воспроизведения запроса. Полезно для пользовательских обработчиков ключей, изменяющих состояние. Например, измените текущий каталог.
- Функция не связана.
ScrollDisplayDown
Прокрутите экран вниз по одному экрану.
- Режим Windows:
<PageDown>
- Режим Emacs:
<PageDown>
ScrollDisplayDownLine
Прокрутите экран вниз по одной строке.
- Режим Windows:
<Ctrl+PageDown>
- Режим Emacs:
<Ctrl+PageDown>
ScrollDisplayToCursor
Прокрутите экран до курсора.
- Режим Emacs:
<Ctrl+End>
ScrollDisplayTop
Прокрутите экран в верхней части экрана.
- Режим Emacs:
<Ctrl+Home>
ScrollDisplayUp
Прокрутите экран вверх по одному экрану.
- Режим Windows:
<PageUp>
- Режим Emacs:
<PageUp>
ScrollDisplayUpLine
Прокрутите экран вверх по одной строке.
- Режим Windows:
<Ctrl+PageUp>
- Режим Emacs:
<Ctrl+PageUp>
SelfInsert
Вставьте ключ.
- Функция не связана.
ShowKeyBindings
Показать все привязанные ключи.
- Режим Windows:
<Ctrl+Alt+?>
- Режим Emacs:
<Ctrl+Alt+?>
- Режим вставки vi:
<Ctrl+Alt+?>
ViCommandMode
Переключите текущий рабочий режим с Vi-Insert на Vi-Command.
- Режим вставки vi:
<Escape>
ViDigitArgumentInChord
Запустите новый аргумент цифры для передачи другим функциям во время одного из аккордов vi.
- Функция не связана.
ViEditVisually
Измените командную строку в текстовом редакторе, заданном $env:EDITOR
или $env:VISUAL
.
- Режим Emacs:
<Ctrl+x,Ctrl+e>
- Режим команды Vi:
<v>
ViExit
Завершает оболочку.
- Функция не связана.
ViInsertMode
Переключитесь в режим вставки.
- Режим команды Vi:
<i>
WhatIsKey
Прочитайте ключ и сообщите мне, к чему привязан ключ.
- Режим Windows:
<Alt+?>
- Режим Emacs:
<Alt+?>
Функции выбора
ExchangePointAndMark
Курсор помещается в расположение метки, а метка перемещается в расположение курсора.
- Режим Emacs:
<Ctrl+x,Ctrl+x>
SelectAll
Выберите всю строку.
- Режим Windows:
<Ctrl+a>
SelectBackwardChar
Измените текущий выбор, чтобы включить предыдущий символ.
- Режим Windows:
<Shift+LeftArrow>
- Режим Emacs:
<Shift+LeftArrow>
SelectBackwardsLine
Измените текущий выбор, чтобы включить курсор в начало строки.
- Режим Windows:
<Shift+Home>
- Режим Emacs:
<Shift+Home>
SelectBackwardWord
Измените текущий выбор, чтобы включить предыдущее слово.
- Режим Windows:
<Shift+Ctrl+LeftArrow>
- Режим Emacs:
<Alt+B>
SelectForwardChar
Измените текущий выбор, чтобы включить следующий символ.
- Режим Windows:
<Shift+RightArrow>
- Режим Emacs:
<Shift+RightArrow>
SelectForwardWord
Измените текущий выбор, чтобы включить следующее слово с помощью ForwardWord.
- Режим Emacs:
<Alt+F>
SelectLine
Измените текущий выбор, чтобы включить курсор в конец строки.
- Режим Windows:
<Shift+End>
- Режим Emacs:
<Shift+End>
SelectNextWord
Измените текущий выбор, чтобы включить следующее слово.
- Режим Windows:
<Shift+Ctrl+RightArrow>
SelectShellBackwardWord
Измените текущий выбор, чтобы включить предыдущее слово с помощью ShellBackwardWord.
- Функция не связана.
SelectShellForwardWord
Измените текущий выбор, чтобы включить следующее слово с помощью ShellForwardWord.
- Функция не связана.
SelectShellNextWord
Измените текущий выбор, чтобы включить следующее слово с помощью ShellNextWord.
- Функция не связана.
SetMark
Пометьте текущее расположение курсора для использования в последующей команде редактирования.
- Режим Emacs:
<Ctrl+>
Поиск по функциям
CharacterSearch
Чтение символа и поиск вперед для следующего вхождения этого символа. Если аргумент указан, выполните поиск вперед (или назад, если отрицательный) для n-го вхождения.
- Режим Windows:
<F3>
- Режим Emacs:
<Ctrl+]>
- Режим вставки vi:
<F3>
- Режим команды Vi:
<F3>
CharacterSearchBackward
Чтение символа и поиск в обратном направлении для следующего вхождения этого символа. Если аргумент указан, выполните поиск назад (или вперед, если отрицательный) для n-го вхождения.
- Режим Windows:
<Shift+F3>
- Режим Emacs:
<Ctrl+Alt+]>
- Режим вставки vi:
<Shift+F3>
- Режим команды Vi:
<Shift+F3>
RepeatLastCharSearch
Повторите последний записанный поиск символов.
- Режим команды Vi:
<;>
RepeatLastCharSearchBackwards
Повторите последний записанный поиск символов, но в противоположном направлении.
- Режим команды Vi:
<,>
RepeatSearch
Повторите последний поиск в том же направлении, что и раньше.
- Режим команды Vi:
<n>
RepeatSearchBackward
Повторите последний поиск в том же направлении, что и раньше.
- Режим команды Vi:
<N>
SearchChar
Прочитайте следующий символ, а затем найдите его, идти вперед.
- Режим команды Vi:
<f>
SearchCharBackward
Считайте следующий символ, а затем найдите его, вернитесь назад.
- Режим команды Vi:
<F>
SearchCharBackwardWithBackoff
Считайте следующий символ, а затем найдите его, вернитесь назад, а затем отключите символ.
- Режим команды Vi:
<T>
SearchCharWithBackoff
Считайте следующий символ, а затем найдите его, идти вперед, а затем отключать символ.
- Режим команды Vi:
<t>
SearchForward
Запрашивает строку поиска и инициирует поиск по AcceptLine.
- Режим вставки vi:
<Ctrl+s>
- Режим команды Vi:
<?>
,<Ctrl+s>
API-интерфейсы поддержки пользовательской привязки ключей
Следующие функции являются общедоступными в Microsoft.PowerShell.PSConsoleReadLine, но не могут быть напрямую привязаны к ключу. Большинство из них полезны в пользовательских привязках ключей.
void AddToHistory(string command)
Добавьте в журнал командную строку, не выполняя ее.
void ClearKillRing()
Очистить кольцо убийства. В основном это используется для тестирования.
void Delete(int start, int length)
Удалите символы длины с самого начала. Эта операция поддерживает отмену и повторение.
void Ding()
Выполните действие Ding на основе предпочтений пользователя.
void GetBufferState([ref] string input, [ref] int cursor)
void GetBufferState([ref] Ast ast, [ref] Token[] tokens,
[ref] ParseError[] parseErrors, [ref] int cursor)
Эти две функции извлекают полезные сведения о текущем состоянии входного буфера. Первое чаще используется для простых случаев. Второй используется, если привязка делает что-то более расширенное с Ast.
IEnumerable[Microsoft.PowerShell.KeyHandler]
GetKeyHandlers(bool includeBound, bool includeUnbound)
Эта функция используется Get-PSReadLineKeyHandler
и, вероятно, не полезна в пользовательской привязке ключей.
Microsoft.PowerShell.PSConsoleReadLineOptions GetOptions()
Эта функция используется Get-PSReadLineOption и, вероятно, не слишком полезна в пользовательской привязке ключей.
void GetSelectionState([ref] int start, [ref] int length)
Если в командной строке нет выбора, функция возвращает значение -1 как в начале, так и в длине. Если в командной строке выделено выделение, возвращается начальная и длина выделенного фрагмента.
void Insert(char c)
void Insert(string s)
Вставьте символ или строку на курсор. Эта операция поддерживает отмену и повторение.
string ReadLine(runspace remoteRunspace,
System.Management.Automation.EngineIntrinsics engineIntrinsics)
Это основная точка входа в PSReadLine. Он не поддерживает рекурсию, поэтому не является полезным в пользовательской привязке ключей.
void RemoveKeyHandler(string[] key)
Эта функция используется Remove-PSReadLineKeyHandler и, вероятно, не слишком полезна в пользовательской привязке ключей.
void Replace(int start, int length, string replacement)
Замените некоторые входные данные. Эта операция поддерживает отмену и повторение. Это предпочтительнее для удаления, а затем вставка, так как она рассматривается как одно действие для отмены.
void SetCursorPosition(int cursor)
Переместите курсор на заданное смещение. Перемещение курсора не отслеживается для отмены.
void SetOptions(Microsoft.PowerShell.SetPSReadLineOption options)
Эта функция является вспомогательным методом, используемым командлетом Set-PSReadLineOption
, но может оказаться полезным для пользовательской привязки ключей, которая хочет временно изменить параметр.
bool TryGetArgAsInt(System.Object arg, [ref] int numericArg,
int defaultNumericArg)
Этот вспомогательный метод используется для пользовательских привязок, которые учитывают DigitArgument. Типичный вызов выглядит следующим образом.
[int]$numericArg = 0
[Microsoft.PowerShell.PSConsoleReadLine]::TryGetArgAsInt($arg,
[ref]$numericArg, 1)
Примечания.
Поведение события OnIdle
При использовании PSReadLine событие OnIdle запускается при
ReadKey()
истечении времени ожидания (без ввода в 300 мс). Событие может быть сигналировано, когда пользователь находится в середине редактирования командной строки, например, пользователь считывает справку по выбору используемого параметра.Начиная с PSReadLine 2.2.0-beta4, поведение OnIdle изменилось, чтобы сигнализировать о событии только в том случае, если время ожидания и текущий
ReadKey()
буфер редактирования пуст.
См. также
PowerShell