web-dev-qa-db-ja.com

PowerShellでのbashのCtrl-rと同等

windows PowerShellで非常に便利なbash [Ctrl-r](および[Ctrl-o])の後方コマンド検索機能を使用する方法を知っている人はいますか?

C-rは、より強力なarrow up履歴操作です。以前に入力したコマンド内を逆方向に検索するという点で、emacsのC-rに似ています。次に、C-oはそのコマンドを実行し、直後の次のコマンドをすぐに行に配置します。これにより、渡された一連のコマンドを効率的に繰り返すことができます。また、セッション履歴ではなく、保存された履歴を調べます。 (~/.bash_historyファイル)。これは非常に便利です。

ありがとう。

ps:おまけとして、サイクルによってタブ補完が機能しないのも厄介です。

20
v.oddou

コマンドの最初の文字を入力して押します F8

代わりにあなたは押すことができます F7 最初の文字を入力します。

詳細: http://technet.Microsoft.com/en-us/magazine/ff678293.aspx

15
georgik

Windows PowerShell 5 を含む WMF 5.0 RTM は、bash CTRL+Rと同じ逆コマンド検索機能をサポートするようになりました。私はこれをWindows 10 Anniversary Editionで使用しており、私のbash muscle memoryはとても満足しています。

サポートは、実際にはPowerShellモジュール PSReadLine から提供されます。これは、質問のコメントの一部で言及されているようです。良い点は、PSReadLineが基本のWMF 5.0インストールに含まれているように見える少なくともWindows 10にあることです。

PowerShell 3以降を実行している場合は、 install PSReadLine を使用して履歴検索機能を取得することもできます。

注:CTRL+Rが他のものにマップされているため、これをISEで機能させる方法がわかりません(スクリプトペインの表示/非表示)。

6
Lantrix

履歴を操作するには、履歴コマンドレットを使用し、次のコマンドで一覧を表示します。

Get-Command *-history

履歴の検索は次のように行われます。履歴を短縮する関数を作成してください:

Get-history | Select-String "command"

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