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


about_PSReadLine_Functions

Краткое описание

PSReadLine предоставляет улучшенный интерфейс редактирования командной строки в консоли PowerShell.

Полное описание

PowerShell 7.3 поставляется с PSReadLine 2.2.6. Текущая версия — PSReadLine 2.3.4. Текущую версию PSReadLine можно установить и использовать в Windows PowerShell 5.1 и более поздней. Для некоторых функций необходимо запустить PowerShell 7.2 или более поздней версии.

В этой статье описаны функции, предоставляемые PSReadLine 2.3.4. Эти функции можно привязать к нажатиям клавиш для простого доступа и вызова.

Использование класса Microsoft.PowerShell.PSConsoleReadLine

Следующие функции доступны в классе Microsoft.PowerShell.PSConsoleReadLine.

Основные функции редактирования

Abort

Прервать текущее действие, например поиск добавочного журнала.

  • Режим Emacs: Ctrl+g
  • Режим вставки vi: Ctrl+g
  • Режим команды Vi: <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+BackspaceCtrl+h
  • Режим вставки vi: Backspace
  • Режим команды Vi: <X>, <d,h>

НазадDeleteInput

Как и назадKillInput — удаляет текст из точки до начала входных данных, но не помещает удаленный текст в кольцо убийства.

  • Режим Windows: Ctrl+Home
  • Режим вставки vi: Ctrl+u, Ctrl+Home
  • Режим команды Vi: <Ctrl+u>, <Ctrl+Home>

НазадDeleteLine

Как и НазадKillLine — удаляет текст из точки до начала строки, но не помещает удаленный текст в кольцо убийства.

  • Режим команды Vi: <d,0>

НазадDeleteWord

Удаляет предыдущее слово.

  • Режим команды Vi: <Ctrl+w>, <d,b>

НазадKillInput

Снимите текст с начала входных данных курсора. Очищаемый текст помещается в кольцо убийства.

  • Режим Emacs: Ctrl+u, Ctrl+x,Backspace

НазадKillLine

Снимите текст с начала текущей логической строки на курсор. Очищаемый текст помещается в кольцо убийства.

  • Функция не связана.

НазадKillWord

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

  • Режим Windows: Ctrl+Backspace, Ctrl+w
  • Режим Emacs: Alt+Backspace, Escape,Backspace
  • Режим вставки vi: Ctrl+Backspace
  • Режим команды Vi: <Ctrl+Backspace>

НазадReplaceChar

Заменяет символ перед курсором.

  • Режим команды Vi: <c,h>

CancelLine

Отмените текущие входные данные, оставив входные данные на экране, но вернитесь на узел, чтобы запрос был оценен снова.

  • Режим вставки vi: Ctrl+c
  • Режим команды Vi: <Ctrl+c>

Прописная буква

Добавлено в PSReadLine 2.3.0

Преобразуйте первый символ следующего слова в верхний регистр и остальные символы в нижний регистр.

  • Режим Emacs: Alt+c, Escape,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,Spacebar>

DeleteCharOrExit

Удалите символ под курсором или если строка пуста, закройте процесс.

  • Режим Emacs: Ctrl+d

DeleteEndOfBuffer

Удаляется в конец многостроного буфера.

  • Режим команды Vi: <d,G>

DeleteEndOfWord

Удалите в конец слова.

  • Режим команды Vi: <d,e>

DeleteLine

Удаляет текущую логическую строку многострочных буферов, включив отмену.

  • Режим команды Vi: <d,d>, <d,_>

DeleteLineToFirstChar

Удаляется из первого непустого символа текущей логической строки в многострочном буфере.

  • Режим команды Vi: <d,^>

DeleteNextLines

Удаляет текущие и следующие логические строки в многострочном буфере.

  • Режим команды Vi: <d,j>

DeletePreviousLines

Удаляет предыдущие запрошенные логические строки и текущую логическую строку в многострочном буфере.

  • Режим команды Vi: <d,k>

DeleteRelativeLines

Удаляется из начала буфера в текущую логическую строку в многострочном буфере.

Как и большинство команд Vi, <d,g,g> команда может быть предопределена числовым аргументом, указывающим абсолютный номер строки, который вместе с текущим номером строки составляет диапазон строк для удаления. Если аргумент не указан, числовой аргумент по умолчанию имеет значение 1, которое ссылается на первую логическую строку в многострочном буфере.

Фактическое число строк, которые необходимо удалить из многострочного набора, вычисляется как разница между текущим логическим номером строки и указанным числовым аргументом, что может быть отрицательным. Поэтому относительная часть имени метода.

  • Режим команды Vi: <d,g,g>

DeleteToEnd

Удаление до конца строки.

  • Режим команды Vi: <D>, <d,$>

DeleteWord

Удалите следующее слово.

  • Режим команды Vi: <d,w>

DowncaseWord

Добавлено в PSReadLine 2.3.0

Преобразуйте следующее слово в нижний регистр.

  • Режим Emacs: Alt+l, Escape,l

ForwardDeleteInput

Как и KillLine, удаляет текст из точки до конца входных данных, но не помещает удаленный текст в кольцо убийства.

  • Режим Windows: Ctrl+End
  • Режим вставки vi: Ctrl+End
  • Режим команды Vi: <Ctrl+End>

ForwardDeleteLine

Удаляет текст из точки до конца текущей логической строки, но не помещает удаленный текст в кольцо убийства.

  • Функция не связана

InsertLineAbove

Новая пустая строка создается над текущей строкой независимо от того, где курсор находится в текущей строке. Курсор перемещается в начало новой строки.

  • Режим Windows: Ctrl+Enter

InsertLineBelow

Новая пустая строка создается под текущей строкой независимо от того, где курсор находится в текущей строке. Курсор перемещается в начало новой строки.

  • Режим Windows: Shift+Ctrl+Enter

InvertCase

Переверните регистр текущего символа и перейдите к следующему.

  • Режим команды Vi: <~>

KillLine

Очистите входные данные от курсора до конца входных данных. Очищаемый текст помещается в кольцо убийства.

  • Режим Emacs: Ctrl+k

KillRegion

Убьет текст между курсором и меткой.

  • Функция не связана.

KillWord

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

  • Режим Windows: Alt+d, 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: <.>

ReplaceChar

Замените текущий символ следующим набором символов, типизированным.

  • Режим команды Vi: <c,l>, <c,Spacebar>

ReplaceCharInPlace

Замените текущий символ только одним символом.

  • Режим команды Vi: <r>

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

UpcaseWord

Добавлено в PSReadLine 2.3.0

Преобразуйте следующее слово в верхний регистр.

  • Режим Emacs: Alt+u, Escape,u

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>

ViBackwardReplaceGlob

Удалите назад к началу предыдущего слова, как разделенные пробелами, и введите режим вставки.

  • Режим команды Vi: <c,B>

ViBackwardReplaceLine

Заменяет строку слева от курсора и все пути к началу.

  • Режим команды Vi: <c,0>

ViBackwardReplaceLineToFirstChar

Заменяет строку слева от курсора и все, кроме одного символа, на начало строки.

  • Режим команды Vi: <c,^>

ViBackwardReplaceWord

Замените предыдущее слово.

  • Режим команды Vi: <c,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>

ViReplaceBrace

Замените все символы между текущим символом фигурной скобки и соответствующим партнером.

  • Режим команды Vi: <c,%>

ViReplaceEndOfGlob

Удалите в конец слова, как разделенные пробелами, и введите режим вставки.

  • Режим команды Vi: <c,E>

ViReplaceEndOfWord

Удалите в конец слова, как разделенные пробелами и общими разделителями, и введите режим вставки.

  • Режим команды Vi: <c,E>

ViReplaceGlob

Удалите в начало следующего слова, как разделенные пробелами, и введите режим вставки.

  • Режим команды Vi: <c,W>

ViReplaceLine

Удалите всю командную строку.

  • Режим команды Vi: <S>, <c,c>

ViReplaceToBeforeChar

Заменяет до заданного символа.

  • Режим команды Vi: <c,t>

ViReplaceToBeforeCharBackward

Заменяет до заданного символа.

  • Режим команды Vi: <c,T>

ViReplaceToChar

Удаляется до заданного символа.

  • Режим команды Vi: <c,f>

ViReplaceToCharBackward

Заменяет до заданного символа.

  • Режим команды Vi: <c,F>

ViReplaceToEnd

Замените символы из позиции курсора на конец строки.

  • Режим команды Vi: <c,$>, <C>

ViReplaceUntilEsc

Замените текущий символ до ввода escape-файла или строки.

  • Режим команды Vi: <r>

ViReplaceWord

Замените текущее слово.

  • Режим команды Vi: <c,W>

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,Spacebar>

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

Функции завершения

Завершено

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

  • Режим Emacs: Tab

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

  • Режим Windows: Ctrl+@, Ctrl+Spacebar
  • Режим Emacs: Ctrl+Spacebar

Возможные компиляции

Отображение списка возможных завершений.

  • Режим Emacs: Alt+=
  • Режим вставки vi: Ctrl+Spacebar
  • Режим команды Vi: <Ctrl+Spacebar>

TabCompleteNext

Попытайтесь завершить текст, окружающий курсор, с последующим доступным завершением.

  • Режим Windows: Tab
  • Режим команды Vi: <Tab>

TabCompletePrevious

Попытайтесь завершить текст, окружающий курсор, с предыдущим доступным завершением.

  • Режим Windows: Shift+Tab
  • Режим команды Vi: <Shift+Tab>

ViTabCompleteNext

Завершает текущую группу редактирования( при необходимости) и вызывает TabCompleteNext.

  • Режим вставки vi: Tab

ViTabCompletePrevious

Завершает текущую группу редактирования( при необходимости) и вызывает TabCompletePrevious.

  • Режим вставки vi: Shift+Tab

Функции перемещения курсора

Назад

Переместите курсор влево. Это может переместить курсор на предыдущую строку многострочного ввода.

  • Режим Windows: LeftArrow
  • Режим Emacs: LeftArrow, Ctrl+b

Назад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

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>, <$>

MoveToFirstLine

Перейдите к первой строке в многострочный команде.

  • Режим команды Vi: <g,g>

MoveToLastLine

Перейдите к последней строке в многострочный команде.

  • Режим команды Vi: <G>

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.

  • Функция не связана.

ViBackwardChar

Переместите курсор один символ слева в режиме редактирования Vi. Это может переместить курсор на предыдущую строку многострочного ввода.

  • Режим вставки vi: LeftArrow
  • Режим команды Vi: <LeftArrow>, <Backspace><h>

ViBackwardWord

Переместите курсор обратно в начало текущего слова или, если между словами, начало предыдущего слова. Границы Word определяются настраиваемым набором символов.

  • Режим команды Vi: <b>

Символы, определяющие границы слов, настраиваются в свойстве WordDelimiters объекта PSConsoleReadLineOptions. Сведения о просмотре или изменении свойства WordDelimiters см. в разделе Get-PSReadLineOption и Set-PSReadLineOption.

ViEndOfGlob

Переместите курсор в конец этого слова, как разделенное пробелами.

  • Режим команды Vi: <E>

ViEndOfPreviousGlob

Перемещается в конец предыдущего слова, используя только пробелы в качестве разделителя слов.

  • Функция не связана.

ViForwardChar

Переместите курсор один символ справа в режиме редактирования Vi. Это может переместить курсор на следующую строку многострочного ввода.

  • Режим вставки vi: RightArrow
  • Режим команды Vi: <RightArrow>, <Spacebar><l>

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
  • Режим вставки vi: Ctrl+s
  • Режим команды Vi: <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
  • Режим вставки vi: Ctrl+r
  • Режим команды Vi: <Ctrl+r>

ViSearchHistoryBackward

Запрашивает строку поиска и инициирует поиск по AcceptLine.

  • Режим команды Vi: </>

Прочие функции

Экран записи

Запуск интерактивного захвата экрана — стрелки вверх и вниз выбирают строки, введите выделенный текст в буфер обмена в виде текста и 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+1Alt+2Alt+3Alt+4Alt+5Alt+6Alt+7Alt+8Alt+9Alt+-
  • Режим Emacs: Alt+0, Alt+1Alt+5Alt+6Alt+7Alt+3Alt+4Alt+2, , Alt+8Alt+9Alt+-
  • Режим команды 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

ShowCommandHelp

Предоставляет представление полной справки по командлетам. Когда курсор находится в конце полностью развернутого параметра, нажимая <F1> ключевые позиции на отображение справки в расположении этого параметра.

Справка отображается в альтернативном буфере экрана с помощью pager из Microsoft.PowerShell.Pager. При выходе из пейджера вы вернелись к исходной позиции курсора на исходном экране. Этот пейджер работает только в современных приложениях терминала, таких как Терминал Windows.

  • Режим Windows: F1
  • Режим Emacs: F1
  • Режим вставки vi: F1
  • Режим команды Vi: <F1>

ShowKeyBindings

Показать все привязанные ключи.

  • Режим Windows: Ctrl+Alt+?
  • Режим Emacs: Ctrl+Alt+?
  • Режим вставки vi: Ctrl+Alt+?

ShowParameterHelp

Предоставляет динамическую справку для параметров, отображая ее под текущей командной строкой, например MenuComplete. Курсор должен быть в конце полностью развернутого имени параметра при нажатии клавиши <Alt+h> .

  • Режим Windows: Alt+h
  • Режим Emacs: Alt+h
  • Режим вставки vi: Alt+h
  • Режим команды Vi: <Alt+h>

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+?

Прогнозирующие функции

AcceptNextSuggestionWord

Примите следующее слово встроенного или выбранного предложения

  • Функция не связана.

AcceptSuggestion

При использовании InlineView в качестве стиля представления для прогнозирования примите текущее встроенное предложение.

  • Функция не связана.

NextSuggestion

При использовании ListView в качестве стиля представления для прогнозирования перейдите к следующему предложению в списке.

  • Функция не связана.

Предыдущийsuggestion

При использовании ListView в качестве стиля представления для прогнозирования перейдите к предыдущему предложению в списке.

  • Функция не связана.

ShowFullPredictionTooltip

Отображение подсказки выбранного элемента списка в полном представлении.

  • Режим Windows: F4
  • Режим Emacs: F4
  • Режим вставки vi: F4

SwitchPredictionView

Переключение стиля представления для прогнозирования между InlineView и ListView.

  • Режим Windows: F2
  • Режим Emacs: F2
  • Режим вставки vi: F2

Поиск по функциям

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: <?>

Функции выбора

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

SelectCommandArgument

Сделайте визуальный выбор аргументов команд. Выбор аргументов ограничен в блоке скрипта. На основе позиции курсора он выполняет поиск из самого внутреннего блока скрипта в самый исходящий блок скрипта и останавливается, когда он находит все аргументы в области блока скрипта.

Эта функция учитывает DigitArgument. Он обрабатывает положительные или отрицательные значения аргументов как смещение вперед или назад от выбранного аргумента или из текущей позиции курсора, если аргумент не выбран.

  • Режим Windows: Alt+a
  • Режим Emacs: Alt+a

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+@

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)

IEnumerable[Microsoft.PowerShell.KeyHandler]
  GetKeyHandlers(string[] Chord)

Эти две функции используются 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() буфер редактирования пуст.

См. также