Поиск по сайту:

о функциях PSReadLine


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

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.

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

Прервать

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

  • Режим Emacs: Ctrl+g
  • Режим вставки Vi: Ctrl+g
  • Командный режим Vi: <Ctrl+g>

ПринятьИПолучитьСледующий

Попытайтесь выполнить текущий ввод. Если его можно выполнить (например, 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

Аналогично BackwardKillInput — удаляет текст от точки до начала ввода, но не помещает удаленный текст в список уничтожений.

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

НазадУдалитьЛинию

Аналогично BackwardKillLine — удаляет текст от точки до начала строки, но не помещает удаленный текст в список уничтожений.

  • Командный режим Vi: <d,0>

НазадУдалитьСлово

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

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

НазадУбитьВвод

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

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

НазадKillLine

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

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

НазадУбитьСлово

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

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

НазадЗаменитьChar

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

  • Командный режим Vi: <c,h>

CancelLine

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

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

CapitalizeWord

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

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

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

Копировать

Скопируйте выбранный регион в системный буфер обмена. Если регион не выбран, скопируйте всю строку.

  • Режим Windows: Ctrl+C

Копироватьиликанцеллине

Если текст выделен, скопируйте его в буфер обмена, в противном случае отмените строку.

  • Режим Windows: Ctrl+c
  • Режим Emacs: Ctrl+c

Резать

Удалить выбранный регион, поместив удаленный текст в системный буфер обмена.

  • Режим Windows: Ctrl+x

DeleteChar

Удалить символ под курсором.

  • Режим Windows: Удалить
  • Режим Emacs: Удалить
  • Режим вставки Vi: Удалить
  • Командный режим Vi: <Delete>, <x>, <d,l>, <d,Пробел>

Удалитьчарорекзит

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

  • Режим Emacs: Ctrl+d

УдалитьEndOfBuffer

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

  • Командный режим Vi: <d,G>

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

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

  • Командный режим Vi: <d,e>

DeleteLine

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

  • Командный режим Vi: <d,d>, <d,_>

Удалитьлайнтофирстчар

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

  • Командный режим Vi: <d,^>

Удалитьследующие строки

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

  • Командный режим Vi: <d,j>

Удалить предыдущие строки

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

  • Командный режим Vi: <d,k>

Удалить относительные линии

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

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

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

  • Командный режим Vi: <d,g,g>

УдалитьToEnd

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

  • Командный режим Vi: <D>, <d,$>

DeleteWord

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

  • Командный режим Vi: <d,w>

DowncaseWord

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

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

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

Форвардделетеинпут

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

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

ВпередDeleteLine

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

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

Вставитьстроку выше

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

  • Режим Windows: Ctrl+Enter

Вставитьлиниюниже

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

  • Режим 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>

Повторить последнюю команду

Повторите последнее изменение текста.

  • Командный режим Vi: <.>

ReplaceChar

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

  • Командный режим Vi: <c,l>, <c,Пробел>

ЗаменитьCharInPlace

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

  • Командный режим Vi: <r>

RevertLine

Возвращает весь ввод к текущему вводу.

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

ОболочкаНазадУбитьСлово

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

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

ОболочкаУбитьСлово

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

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

SwapCharacters

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

  • Режим 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>

UndoAll

Отменить все предыдущие изменения для строки.

  • Командный режим Vi: <U>

UnixWordRubout

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

  • Режим Emacs: Ctrl+w

UpcaseWord

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

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

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

ValidateAndAcceptLine

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

  • Режим Emacs: Ctrl+m

ВиАцептЛайн

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

  • Командный режим Vi: <Enter>

ВиAcceptLineOrExit

Похож на DeleteCharOrExit в режиме Emacs, но принимает строку вместо удаления символа.

  • Режим вставки Vi: Ctrl+d
  • Командный режим Vi: <Ctrl+d>

ВиАппендЛайн

Новая строка вставляется ниже текущей строки.

  • Командный режим Vi: <o>

ViBackwardDeleteGlob

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

  • Командный режим Vi: <d,B>

ViBackwardGlob

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

  • Командный режим Vi: <B>

ViBackwardReplaceGlob

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

  • Командный режим Vi: <c,B>

ViBackwardReplaceLine

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

  • Командный режим Vi: <c,0>

ViBackwardReplaceLineToFirstChar

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

  • Командный режим Vi: <c,^>

ViНазадЗаменитьСлово

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

  • Командный режим Vi: <c,B>

виделетебрейс

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

  • Командный режим Vi: <d,%>

ViDeleteEndOfGlob

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

  • Командный режим Vi: <d,E>

виделетеглоб

Удалить следующий glob (слово, разделенное пробелами).

  • Командный режим Vi: <d,W>

ViDeleteToBeforeChar

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

  • Командный режим Vi: <d,t>

ViDeleteToBeforeCharBackward

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

  • Командный режим Vi: <d,T>

Виделететочар

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

  • Командный режим Vi: <d,f>

ViDeleteToCharBackward

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

  • Командный режим Vi: <d,F>

ВиInsertAtBegining

Переключитесь в режим вставки и установите курсор в начало строки.

  • Командный режим Vi: <I>

ВиInsertAtEnd

Переключитесь в режим вставки и установите курсор в конец строки.

  • Командный режим Vi: <A>

ВиИнсертЛайн

Новая строка вставляется над текущей строкой.

  • Командный режим Vi: <O>

ViInsertWithAppend

Добавить из текущей позиции строки.

  • Командный режим Vi: <a>

ViInsertWithDelete

Удалите текущий символ и переключитесь в режим вставки.

  • Командный режим Vi: <s>

ВиДжоинЛайнс

Соединяет текущую строку и следующую строку.

  • Командный режим Vi: <J>

ViReplaceBrace

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

  • Командный режим Vi: <c,%>

ViReplaceEndOfGlob

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

  • Командный режим Vi: <c,E>

ViReplaceEndOfWord

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

  • Командный режим Vi: <c,E>

ViReplaceGlob

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

  • Командный режим Vi: <c,W>

ВиReplaceLine

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

  • Командный режим Vi: <S>, <c,c>

ViReplaceToBeforeChar

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

  • Командный режим Vi: <c,t>

ViReplaceToBeforeCharBackward

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

  • Командный режим Vi: <c,T>

ViReplaceToChar

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

  • Командный режим Vi: <c,f>

ViReplaceToCharBackward

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

  • Командный режим Vi: <c,F>

ВиReplaceToEnd

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

  • Командный режим Vi: <c,$>, <C>

ViReplaceUntilEsc

Заменяйте текущий символ до тех пор, пока не будет введен escape или строка не будет принята.

  • Командный режим Vi: <r>

ViReplaceWord

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

  • Командный режим Vi: <c,W>

ВиЯнкБегиннингОфЛайн

Рывок от начала буфера к курсору.

  • Командный режим Vi: <y,0>

ВиЯнкКонецГлоб

Переместите курсор в конец СЛОВА.

  • Командный режим Vi: <y,E>

ViYankEndOfWord

Выполните рывок от курсора до конца слова (слов).

  • Командный режим Vi: <y,e>

ВиЯнкЛефт

Переместить символ(ы) слева от курсора.

  • Командный режим Vi: <y,h>

ВиЯнкЛайн

Скопируйте весь буфер.

  • Командный режим Vi: <y,y>

Виянкнекстглоб

Переместитесь от курсора к началу следующего СЛОВА.

  • Командный режим Vi: <y,W>

ВиЯнкСледующееСлово

Вытащите слово(а) после курсора.

  • Командный режим Vi: <y,w>

ВиЯнкПроцент

Сделайте рывок к/из соответствующей скобки.

  • Командный режим Vi: <y,%>

ViYankПредыдущийGlob

Выполните рывок от начала СЛОВ до курсора.

  • Командный режим Vi: <y,B>

ViYankПредыдущийWord

Вытащите слово(а) перед курсором.

  • Командный режим Vi: <y,b>

ViYankRight

Перетащите символ(ы) под курсором и справа от него.

  • Командный режим Vi: <y,l>, <y,Пробел>

ViYankToEndOfLine

Выполните рывок от курсора до конца буфера.

  • Командный режим Vi: <y,$>

ViYankToFirstChar

Выполните рывок от первого символа без пробелов до курсора.

  • Командный режим Vi: <y,^>

Янк

Добавьте во входные данные последний убитый текст.

  • Режим Emacs: Ctrl+y

YankLastArg

Удалите последний аргумент из предыдущей строки истории. С аргументом при первом вызове он ведет себя так же, как YankNthArg. При вызове несколько раз вместо этого он выполняет итерацию по истории, а arg устанавливает направление (отрицательное значение меняет направление).

  • Режим Windows: Alt+.
  • Режим Emacs: Alt+., Alt+_, Escape,., Escape,_

ЯнкНтАрг

Удалите первый аргумент (после команды) из предыдущей строки истории. С аргументом извлеките n-й аргумент (начиная с 0), если аргумент отрицательный, начните с последнего аргумента.

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

YankPop

Если предыдущей операцией была Yank или YankPop, замените ранее извлеченный текст следующим убитым текстом из списка уничтожений.

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

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

Полный

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

  • Режим Emacs: Tab

MenuComplete

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

  • Режим Windows: Ctrl+@, Ctrl+Пробел
  • Режим Emacs: Ctrl+Пробел

PossibleCompletions

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

  • Режим Emacs: Alt+=
  • Режим вставки Vi: Ctrl+Пробел
  • Командный режим Vi: <Ctrl+Пробел>

TabCompleteNext

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

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

TabCompleteПредыдущий

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

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

ViTabCompleteСледующий

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

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

ViTabCompleteПредыдущий

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

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

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

BackwardChar

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

  • Режим Windows: Стрелка влево
  • Режим Emacs: Стрелка влево, Ctrl+b

BackwardWord

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

  • Режим Windows: Ctrl+Стрелка влево
  • Режим Emacs: Alt+b, Escape,b
  • Режим вставки Vi: Ctrl+Стрелка влево
  • Командный режим Vi: <Ctrl+LeftArrow>

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

НачалоОфЛайн

Если ввод содержит несколько строк, перейдите к началу текущей строки или, если он уже находится в начале строки, перейдите к началу ввода. Если входные данные содержат одну строку, перейдите к началу ввода.

  • Режим Windows: Домой
  • Режим Emacs: Home, Ctrl+a
  • Режим вставки Vi: Главная
  • Командный режим Vi: <Home>

КонецОфЛайн

Если ввод содержит несколько строк, перейдите к концу текущей строки или, если он уже находится в конце строки, перейдите к концу ввода. Если входные данные содержат одну строку, перейдите к концу ввода.

  • Режим Windows: Конец
  • Режим Emacs: Конец, Ctrl+e
  • Режим вставки Vi: Конец

ForwardChar

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

  • Режим Windows: Стрелка вправо
  • Режим Emacs: Стрелка вправо, Ctrl+f

ForwardWord

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

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

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

GotoBrace

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

  • Режим Windows: Ctrl+]
  • Режим вставки Vi: Ctrl+]
  • Командный режим Vi: <Ctrl+]>

GotoColumn

Перейдите к столбцу, указанному arg.

  • Командный режим Vi: <|>

GotoFirstNonBlankOfLine

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

  • Командный режим Vi: <^>, <_>

Моветоконденофлине

Переместите курсор в конец ввода.

  • Командный режим Vi: <End>, <$>

MoveToFirstLine

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

  • Командный режим Vi: <g,g>

Моветоластлайне

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

  • Командный режим Vi: <G>

NextLine

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

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

NextWord

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

  • Режим Windows: Ctrl+Стрелка вправо
  • Режим вставки Vi: Ctrl+стрелка вправо
  • Командный режим Vi: <Ctrl+RightArrow>

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

СледующееСловоКонец

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

  • Командный режим Vi: <e>

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

PreviousLine

Переместите курсор на предыдущую строку.

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

ОболочкаНазадСлово

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

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

ShellForwardWord

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

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

ОболочкаNextWord

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

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

ViBackwardChar

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

  • Режим вставки Vi: Стрелка влево
  • Командный режим Vi: <LeftArrow>, <Backspace>, <h>

ViBackwardWord

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

  • Командный режим Vi: <b>

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

ViEndOfGlob

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

  • Командный режим Vi: <E>

ViEndOfPreviousGlob

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

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

ВиФорвардЧар

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

  • Режим вставки Vi: Стрелка вправо
  • Командный режим Vi: <Стрелка вправо>, <Пробел>, <l>

ВиГотоБрейс

Похож на GotoBrace, но основан на символах, а не на токенах.

  • Командный режим Vi: <%>

ВиНекстГлоб

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

  • Командный режим Vi: <W>

ViNextWord

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

  • Командный режим Vi: <w>

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

Функции истории

НачалоИстории

Переход к первому элементу в истории.

  • Режим Emacs: Alt+<

ClearHistory

Очищает историю в PSReadLine. Это не влияет на историю PowerShell.

  • Режим Windows: Alt+F7

Конец истории

Перейти к последнему элементу (текущий ввод) в истории.

  • Режим Emacs: Alt+>

ВпередПоискИстория

Выполните пошаговый прямой поиск по истории.

  • Режим Windows: Ctrl+s
  • Режим Emacs: Ctrl+s
  • Режим вставки Vi: Ctrl+s
  • Командный режим Vi: <Ctrl+s>

ИсторияПоискНазад

Замените текущий ввод «предыдущим» элементом из истории PSReadLine, который соответствует символам между началом, вводом и курсором.

  • Режим Windows: F8

ИсторияПоискВперед

Замените текущий ввод «следующим» элементом из истории PSReadLine, который соответствует символам между началом, вводом и курсором.

  • Режим Windows: Shift+F8

NextHistory

Замените текущий ввод «следующим» элементом из истории PSReadLine.

  • Режим Windows: Стрелка вниз
  • Режим Emacs: Стрелка вниз, Ctrl+n
  • Режим вставки Vi: Стрелка вниз
  • Командный режим Vi: <DownArrow>, <j>, <+>

PreviousHistory

Замените текущий ввод «предыдущим» элементом из истории PSReadLine.

  • Режим Windows: Стрелка вверх
  • Режим Emacs: Стрелка вверх, Ctrl+p
  • Режим вставки Vi: Стрелка вверх
  • Командный режим Vi: <UpArrow>, <k>, <->

История обратного поиска

Выполните инкрементный обратный поиск по истории.

  • Режим Windows: Ctrl+r
  • Режим Emacs: Ctrl+r
  • Режим вставки Vi: Ctrl+r
  • Командный режим Vi: <Ctrl+r>

ViПоискИсторияНазад

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

  • Командный режим Vi: </>

Разные функции

CaptureScreen

Запуск интерактивного захвата экрана — стрелки вверх/вниз выбирают строки, ввод копирует выделенный текст в буфер обмена в виде текста и HTML.

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

ClearScreen

Очистите экран и нарисуйте текущую линию вверху экрана.

  • Режим Windows: Ctrl+l
  • Режим Emacs: Ctrl+l
  • Режим вставки Vi: Ctrl+l
  • Командный режим Vi: <Ctrl+l>

DigitArgument

Запустите новый цифровой аргумент для передачи другим функциям. Вы можете использовать это как множитель для следующей функции, вызываемой нажатием клавиши. Например, нажатие <Alt+1> <Alt+0> устанавливает значение digit-argument равным 10. Затем нажатие # отправляет 10 символов # (##########) в строку ввода. Аналогичным образом вы можете использовать это с другими операциями, такими как <Delete> или Стрелка влево.

  • Режим 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+2, Alt+3, Alt+4, Alt+5, Alt+6, Alt+7, Alt+8 >, Alt+9, Alt+-
  • Командный режим Vi: <0>, <1>, <2>, <3>, ><4>, <5>, <6>, <7>, <8>, <9>

InvokePrompt

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

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

ПрокруткаДисплейВниз

Прокрутите дисплей на один экран вниз.

  • Режим Windows: PageDown
  • Режим Emacs: PageDown

ПрокруткаDisplayDownLine

Прокрутите дисплей на одну строку вниз.

  • Режим Windows: Ctrl+PageDown
  • Режим Emacs: Ctrl+PageDown

ПрокруткаDisplayToCursor

Прокрутите дисплей до курсора.

  • Режим Emacs: Ctrl+End

ПрокруткаДисплейВверх

Прокрутите дисплей вверх.

  • Режим Emacs: Ctrl+Home

ПрокруткаДисплейВверх

Прокрутите дисплей на один экран вверх.

  • Режим Windows: PageUp
  • Режим Emacs: PageUp

ПрокруткаDisplayUpLine

Прокрутите дисплей на одну строку вверх.

  • Режим Windows: Ctrl+PageUp
  • Режим Emacs: Ctrl+PageUp

ПоказатьКомандуСправка

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

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

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

ShowKeyBindings

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

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

ПоказатьпараметрСправка

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

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

Викоммандмоде

Переключите текущий режим работы с Vi-Insert на Vi-Command.

  • Режим вставки Vi: Escape

ViDigitArgumentInChord

Запустите новый цифровой аргумент для передачи другим функциям, находясь в одном из аккордов vi.

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

ViEditВизуально

Отредактируйте командную строку в текстовом редакторе, указанном в $env:EDITOR или $env:VISUAL.

  • Режим Emacs: Ctrl+x,Ctrl+e
  • Командный режим Vi: <v>

ViExit

Выход из оболочки.

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

ВиИнсертмоде

Переключитесь в режим вставки.

  • Командный режим Vi: <i>

WhatIsKey

Прочитай ключ и скажи мне, с чем связан этот ключ.

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

Функции прогнозирования

ПринятьСледующееПредложениеWord

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

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

AcceptSuggestion

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

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

NextSuggestion

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

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

PreviousSuggestion

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

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

ПоказатьFullPredictionTooltip

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

  • Режим 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>

Поиск персонажаНазад

Прочитайте символ и выполните поиск следующего появления этого символа в обратном направлении. Если аргумент указан, выполните поиск назад (или вперед, если он отрицательный) для n-го вхождения.

  • Режим Windows: Shift+F3
  • Режим Emacs: Ctrl+Alt+]
  • Режим вставки Vi: Shift+F3
  • Командный режим Vi: <Shift+F3>

Повторить последний символПоиск

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

  • Командный режим Vi: <;>

Повторить LastCharSearchНазад

Повторите поиск последнего записанного символа, но в противоположном направлении.

  • Командный режим Vi: <,>

RepeatSearch

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

  • Командный режим Vi: <n>

Повторить поискНазад

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

  • Командный режим Vi: <N>

SearchChar

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

  • Командный режим Vi: <f>

ПоискCharНазад

Прочитайте следующий символ, а затем найдите его, идя назад.

  • Командный режим Vi: <F>

ПоискCharBackwardWithBackoff

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

  • Командный режим Vi: <T>

ПоискCharWithBackoff

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

  • Командный режим Vi: <t>

SearchForward

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

  • Командный режим Vi: <?>

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

ExchangePointAndMark

Курсор размещается в месте отметки, а метка перемещается в место расположения курсора.

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

SelectAll

Выделите всю строку.

  • Режим Windows: Ctrl+a

ВыберитеBackwardChar

Отрегулируйте текущий выбор, включив в него предыдущий символ.

  • Режим Windows: Shift+Стрелка влево
  • Режим Emacs: Shift+Стрелка влево

Выбрать обратную линию

Отрегулируйте текущий выбор, чтобы он включал область от курсора до начала строки.

  • Режим Windows: Shift+Home
  • Режим Emacs: Shift+Home

ВыберитеBackwardWord

Отрегулируйте текущий выбор, включив в него предыдущее слово.

  • Режим Windows: Shift+Ctrl+Стрелка влево
  • Режим Emacs: Alt+B

SelectCommandАргумент

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

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

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

ВыбратьForwardChar

Отрегулируйте текущий выбор, чтобы включить следующий символ.

  • Режим Windows: Shift+Стрелка вправо
  • Режим Emacs: Shift+Стрелка вправо

ВыбратьForwardWord

Отрегулируйте текущий выбор, чтобы включить следующее слово, используя ForwardWord.

  • Режим Emacs: Alt+F

SelectLine

Отрегулируйте текущий выбор, чтобы он включался от курсора до конца строки.

  • Режим Windows: Shift+End
  • Режим Emacs: Shift+End

ВыбратьСледующееСлово

Отрегулируйте текущий выбор, чтобы включить следующее слово.

  • Режим Windows: Shift+Ctrl+Стрелка вправо

ВыберитеShellBackwardWord

Отрегулируйте текущий выбор, включив в него предыдущее слово, используя ShellBackwardWord.

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

Селектшеллфорвардворд

Отрегулируйте текущий выбор, чтобы включить следующее слово, используя ShellForwardWord.

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

ВыбратьShellNextWord

Отрегулируйте текущий выбор, чтобы включить следующее слово, используя 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() и текущий буфер редактирования пуст.

См. также

  • about_PSReadLine