PowerShell эквивалент Ctrl + R?

13

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

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

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

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

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

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

red888
источник

Ответы:

11

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

Смотрите статью о Эй, автор сценариев! блог, касающийся этой идеи, вдохновленной Bash, для PowerShell.

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

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

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

Ctrl+ Alt+ ( Shift) +S

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

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

М.М.
источник
5

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

Там очень полезный список ярлыков PowerShell здесь .

Сэм Коган
источник
Вы сами это пробовали? Это никогда не работало для меня или только половину времени. Например, я набираю кучу команд get- <what>. Затем введите get- <F8> и он будет циклически проходить одну или две случайные команды из моей истории? Я не знаю, что, черт возьми, это делает. Например, я просто набрал get-childitem и запустил его сразу после ввода get-c <f8> и ничего не получил. Может быть, моя сессия испорчена?
red888
У меня работает 100% времени, это с установленным WMF 5
Сэм Коган,
5

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

введите описание изображения здесь

skrebbel
источник
Я тоже работаю на win10. Ctrl + R работает в powershell, но не работает в окне cmd.
дуда
Конечно, но зачем вам использовать cmd.exe ??
Рауль Салинас-Монтеагудо
0

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

termil0r
источник
0

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

Толга
источник