[PowerShell] PSReadLine 2.1がリリースされました

2020.11.07

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

しばたです。
PowerShellコンソールに様々な拡張機能を提供しているPSReadLine 2.0のマイナーバージョンアップであるVer.2.1がリリースされました。

インストール・アップデート方法

インストールおよびアップデート方法についてはPSReadLine 2.0リリース時の記事をご覧ください。

ちなみにPSReadLine 2.0を既にインストール済みの環境であればUpdate-ModuleInstall-Moduleで更新できるはずです。
現在最新のPowerShell 7.0.3であればPSReadLine 2.0.2がデフォルトでインストール済みのため、

Install-Module PSReadLine -Force

でサイドバイサイドインストールによりVer.2.1に更新できます。

PSReadLine 2.1 新機能

マイナーバージョンアップのためバグ修正などが多めです。雰囲気的にはviモードに関わる修正や改善が多い様に感じます。
詳細はGitHubのリリースノートを見ていただくのが良いでしょう。

(ベータ機能) fish風オートサジェスト機能

まだベータ機能としてのリリースではありますが、PSReadLine 2.1一番の新機能としてfish風のオートサジェスト機能が挙げられます。
発端としてはGitHubのこちらのIssueから実装が始まっています。

機能としてはコマンドの入力履歴を元データとして過去に入力したコマンドラインを薄く表示し補完するものとなります。
言葉で説明するより以下のGifを見ていただくのが手っ取り早いでしょう。

(上記GitHubのIssueより転載)

この機能はデフォルトでは有効になっておらず、以下の設定コマンドを実行することで有効になります。

# fish風のオートサジェスト機能を有効に
Set-PSReadLineOption -PredictionSource History
# (optional) Ctrl+f 入力で前方1単語進む : 補完の確定に使う用
Set-PSReadLineKeyHandler -Key "Ctrl+f" -Function ForwardWord

最初のコマンドでfish風のオートサジェスト機能が有効になり、二番目のコマンドでCtrl+fキー入力で補完の確定をさせることができる様になります。
ちなみにCtrl+zで補完の前の状態に戻ることができます。

設定を元に戻したいときは以下の様に-PredictionSourceパラメーターをNoneとします。

# fish風のオートサジェスト機能を無効に
Set-PSReadLineOption -PredictionSource None

この設定はコンソールを終了するとリセットされますので、永続させたいときはプロファイルに記述する様にしてください。

最後に

以上となります。

まだベータ版ですがfish風のオートサジェストは非常に面白い機能でしたので紹介してみました。
気軽に試せますので一度は試してみてはいかがでしょうか。