Назад | Перейти на главную страницу

Эквивалент Ctrl + R в Powershell?

В баше я могу сделать Ctrl+р и начните вводить команду для поиска в моей истории.

Как мне это сделать в PowerShell?

Есть ли способ привязать ключ к чему-то вроде?

function GH($str) {get-history | select-string $str}

Но мне нужно было бы перечитать строку для каждого ввода char или удалить для вывода соответствующих команд, таких как Ctrl+р делает.

Это возможно?

Вы можете исправить это, приняв PSReadLine модуль.

Увидеть статья о сценарии Hey, Scripting Guy! блог относительно этой реализации, вдохновленной bash, для PowerShell.

В частности, использование Ctrl+Alt+ (сдвиг) +? чтобы показать все сочетания клавиш.

PS C:\> $PSVersionTable

Name                           Value
----                           -----
PSVersion                      5.0.10240.16384
WSManStackVersion              3.0
SerializationVersion           1.1.0.1
CLRVersion                     4.0.30319.42000
BuildVersion                   10.0.10240.16384
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
PSRemotingProtocolVersion      2.3

Ctrl+р

PS C:\> Get-Module -ListAvailable
bck-i-search: mo_

Ctrl+Alt+ (сдвиг) +S

Key                  Function                 Description
---                  --------                 -----------
Ctrl+r               ReverseSearchHistory     Search history backwards interactively
Ctrl+s               ForwardSearchHistory     Search history forward interactively

Вкратце: либо установите этот модуль вручную, либо обновитесь до Windows PowerShell v5.

Я не знаю, когда это было добавлено, но в моей нестандартной, обновленной Windows 10 оно встроено. Нажмите ctrl + r для обратного поиска по истории, он отлично работает.

Введите поисковый запрос и нажмите F8, это приведет к поиску вашей истории команд.

Есть очень полезный список ярлыков PowerShell. Вот.

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

Вы также можете запустить свою команду, поместив символ # перед частичным текстом поиска команды, которую вы ищете, а затем нажмите кнопку tap (при необходимости несколько раз) для поиска в истории сеанса.