Поделиться через


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>

Попытайтесь выполнить завершение текста, окружающего курсор. Если существует несколько возможных завершений, для завершения используется самый длинный однозначный префикс. Если попытаться завершить самое длинное однозначное завершение, отобразится список возможных завершений.

  • Режим 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() буфер редактирования пуст.

См. также