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+Backspace
Ctrl+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
MenuComplete
Попытайтесь выполнить завершение текста, окружающего курсор. Если существует несколько возможных завершений, для завершения используется самый длинный однозначный префикс. Если попытаться завершить самое длинное однозначное завершение, отобразится список возможных завершений.
- Режим 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+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
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()
буфер редактирования пуст.
См. также
PowerShell