バッシュでできる Ctrl+R コマンドを入力して、履歴を検索します。
PowerShellでそれを行うにはどうすればよいですか?
キーを何かにバインドする方法はありますか?
function GH($str) {get-history | select-string $str}
しかし、私は各文字入力の文字列を再読み取りするか、一致するコマンドを出力するために削除する必要があります Ctrl+R します。
これは可能ですか?
PSReadLine モジュールを採用することでこれを修正できます。
PowerShellのこのbashにインスパイアされたreadlineの実装については、 Hey、Scripting Guy!ブログの記事 を参照してください。
特に、 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にアップグレードします。
検索用語を入力してF8キーを押すと、コマンド履歴が検索されます。
PowerShellショートカットの非常に便利なリスト here があります。
F7キーの下にグラフィカル検索もあります。押すとポップアップが表示され、スクロールして前に実行したコマンドを検索できます。カーソルを行の上に置いた状態でEnterキーを押すと、行が再実行されます。
探しているコマンドの部分的な検索テキストの前に#文字を置いてコマンドを開始し、その後(必要に応じて複数回)タップしてセッション履歴を検索することもできます。