Powershell でオートコンプリートを bash のように動作させることは可能ですか?

Powershell でオートコンプリートを bash のように動作させることは可能ですか?

私は Powershell が大好きですが、Linux のバックグラウンドを持つ私にとって、本当に気になることがいくつかあります。たとえば、デフォルトの自動補完がどのように機能するかなどです。

たとえば、Get-PS は、最初に一致するコマンドである「Get-PSBreakpoint」に展開されます。bash では、一致するコマンドが 1 つしかない場合、bash は一致するコマンドに展開します。複数のコマンドがある場合、Tab キーを 1 回押しても何も起こりません。Tab キーを 2 回タップすると、一致するコマンドのリストが表示されますが、展開されません。Powershell をこのように動作させる方法はありますか?

もう 1 つ、1 行書いて、マーカーを以前のコマンドに戻すとします (マーカーは ^ がある場所です)。

「Get-PSS^ | Remove-PSSession」は「Get-PSSession^」に自動補完され、すべての末尾のコマンドが削除されます。bash では、末尾のコマンドは影響を受けずにそのまま残ります。Powershell が自動補完時に末尾のコマンドを削除しないようにする方法はありますか?

ボーナスとして、CTRL+L で画面をクリアできます。CTRL+A で行の先頭に、CTRL+E で行の末尾にそれぞれ移動できます。

答え1

チェックアウトPSReadline

記事より:

このモジュールは、PowerShell.exe のコマンド ライン編集エクスペリエンスを置き換えます。次の機能を提供します。

  • 構文の色分け
  • シンプルな構文エラー通知
  • 優れた複数行エクスペリエンス(編集と履歴の両方)
  • カスタマイズ可能なキーバインディング
  • Cmd モードと emacs モード (どちらもまだ完全には実装されていませんが、どちらも使用可能です)
  • 多くの設定オプション
  • Bash スタイルの補完 (Cmd モードではオプション、Emacs モードではデフォルト)
  • Bash/zsh スタイルのインタラクティブな履歴検索 (CTRL-R)
  • Emacs ヤンク/キルリング
  • PowerShell トークンベースの「単語」の移動と削除
  • 元に戻す/やり直す
  • ライブセッション間での履歴の共有を含む履歴の自動保存
  • Ctrl+Space による「メニュー」補完 (Intellisense に似ており、矢印による選択補完)

毎日使ってます!

答え2

ぜひご覧になってみてくださいパワータブカスタマイズ可能な PowerShell タブ拡張機能。

答え3

こんにちはピーターただ押してくださいF8speedsearch のようなものに使用します。これは、行にある内容で始まる、以前に実行したコマンドで完了します。末尾の削除に関する問題は厄介です。同じ問題に関して、Connect に提案を書き込みました。主に、Powershell ISE を使用できます。これは、少し動作が優れています (末尾の文字を削除しないでください)。

答え4

PowerShell は、古くからあるコマンド プロンプトと同じコンソール機能を使用します。そのため、通常の Home/End のほか、次の機能があります。

  • F3前のコマンドを呼び出す
  • F1前のコマンドから1文字をコピーする
  • F7ポップアップ履歴ウィンドウ

...しかし、私の知る限り、すべての可能な補完を表示する機能はありません。

関連情報