18

Кто-нибудь знает способ иметь функцию поиска обратной команды bash [Ctrl-r][Ctrl-o]), которая так полезна в Windows PowerShell?

C-r - это более мощная манипуляция arrow up истории, она похожа на C-r в emacs в том, что она ищет внутри команд, которые вы ввели ранее. Затем C-o выполняет эту команду и немедленно помещает в строку следующую команду после этого. Чтобы вы могли эффективно повторять пройденные серии команд. Также он просматривает сохраненную историю, а не историю сеанса. (файл ~/.bash_history ). Что бесконечно полезно.

Благодарю.

ps: в качестве бонуса было бы здорово и завершение вкладки, не работающее циклами.

3 ответа3

12

Введите первые буквы команды и нажмите F8.

Или вы можете нажать F7 и набрать первые буквы.

Более подробная информация: http://technet.microsoft.com/en-us/magazine/ff678293.aspx

5

WMF 5.0 RTM, который включает в себя Windows PowerShell 5, теперь поддерживает ту же функцию поиска обратной команды bash CTRL+R Я использовал это в Windows 10 Anniversary Edition, и моя память мышц bash очень счастлива.

Поддержка на самом деле исходит от модуля PowerShell PSReadLine, который, как я вижу, упоминался в некоторых комментариях вопроса. Хорошо, что PSReadLine теперь включен в базовую установку WMF 5.0, по крайней мере, в Windows 10.

Если вы используете PowerShell 3 или более позднюю версию , вы также можете установить PSReadLine и получить функцию поиска по истории.

Примечание: я не узнал, как заставить это работать в ISE, поскольку CTRL+R сопоставлен с чем-то другим (Показать / Скрыть панель скриптов).

4

Для управления вашей историей вы можете использовать командлеты истории, перечислите их с помощью этой команды:

Get-Command *-history

Поиск в вашей истории сделан следующим образом, не стесняйтесь сделать функцию, чтобы сократить ее:

Get-history | Select-String "command"

function f ($Name) { Get-history | Select-String $name }

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .