【PC設定】PowerShell の入力予測機能って?
以前のPCだと、VS Code のターミナルに、過去に入力したコマンドが予測変換されて、“→”を右矢印で入力が完了するといった機能があったはずなのに、PCを買い換えたらそれが使えなくなった。
VS Code ``ターミナル``予測変換``コマンド
といったWordで検索してもヒットせず、辿り着くのにまた時間がかかったので記録します。
PowerShell の入力予測機能って?
具体的なイメージ:
例えば、VS Code のターミナルで、n
とか入力したら、過去に入力したことがあるものや関連のコマンドを予測して表示してくれます。
初学者はコードを覚える必要があるので、必要ないかもですが、チートシートに乗るようなコマンドは流石にこれあると便利です。
対応したこと
- PSReadLineのインストール
- PowerShell 7 以降へのアップグレード
公式には、PSReadLine は、Windows PowerShell 5.1 または PowerShell 7 以上にインストールすることができるという記載があるので、アップグレートも行いました。
インストール
公式:PSReadLine の予測機能を使用する
※ NuGet プロバイダーのインストールもしました。
エラー
Install-Module -Name PSReadLine -Force -AllowClobber
# コマンドの効果
PSReadLine モジュールを強制的にインストールまたは再インストールします。
既に存在する PSReadLine モジュールがある場合でも、上書きして最新バージョンをインストールします。
AllowClobber-競合するコマンドがあっても、インストールを続行します。
を実行したら、
警告: バージョン '2.3.5' のモジュール 'PSReadLine'
は現在使用中です。アプリケーションを終了した後で、操作をやり直してください。
PSReadLine モジュールの古いバージョンが現在使用中であるため、新しいバージョンに更新できないことを示しています。
エラーへの対応
1. バージョンの確認
Get-Module -Name PSReadLine -ListAvailable
ModuleType Version Name ExportedCommands
---------- ------- ---- ----------------
+`Script 2.3.5 PSReadLine` {Get-PSReadLineKeyHandler, Set-PSReadLineKeyHandler, Remov...
ディレクトリ: C:\Program Files\WindowsPowerShell\Modules
ModuleType Version Name ExportedCommands
---------- ------- ---- ----------------
+`Script 2.0.0 PSReadLine`
2. 古いバージョンの削除
- ユーザーディレクトリにある PSReadLine モジュールを削除
Remove-Item -Recurse -Force "$HOME\Documents\WindowsPowerShell\Modules\PSReadLine"
3. 最新バージョンのインストール
古いバージョンを削除した後、最新バージョンをインストール
Install-Module -Name PSReadLine -Scope CurrentUser -Force -AllowClobber
4. 最新バージョンの確認
インストールが完了したら、再度バージョンを確認
Get-Module -Name PSReadLine -ListAvailable
5. PSReadLine モジュールのインポート
インポートを行う。
Import-Module -Name PSReadLine -Force
6. PredictionSource の設定
最新バージョンの PSReadLine をインポート後、以下のコマンドで PredictionSource を設定
Set-PSReadLineOption -PredictionSource HistoryAndPlugin
7. VS Code での確認
VS Code を再起動し、PowerShell 7 を使用していることを確認し、PSReadLine の予測機能が有効になっているか確認
PredictionSourceについて
PSReadLine モジュールの設定オプションの一つで、PowerShell 7.2 以降でサポートされているようです。このオプションは、コマンドラインで入力予測機能を有効にするためのもので、以下に詳細を記載します。
-
概要
PredictionSource オプションは、コマンドラインでの入力時に予測機能を提供するために使用されます。これにより、過去のコマンド履歴やプラグインからの予測を基に、ユーザーが入力を続けるための候補を表示します。 -
設定オプション
-
None:
予測機能を無効にします。コマンド履歴やプラグインからの予測は表示されません。 -
History:
コマンド履歴からの予測を有効にします。以前に入力したコマンドが予測として表示されます。 -
Plugin:
プラグインからの予測を有効にします。これには、外部プラグインから提供される予測が含まれます。 -
HistoryAndPlugin:
コマンド履歴とプラグインの両方からの予測を有効にします。以前に入力したコマンドとプラグインから提供される予測の両方が表示されます。
PowerShell 7 以降へのアップグレード
PowerShell 7 のインストール手順
1. PowerShell 7 のダウンロード
PowerShell GitHub リリースページにアクセスします。
使用しているオペレーティングシステムに対応するインストーラをダウンロードします。Windows の場合は、MSI パッケージを選択します。
Windows インストーラをダウンロードできます(例として v7.4.3 を使用しています):
PowerShell-7.4.3-win-x64.msi
2. PowerShell 7 のインストール
ダウンロードした MSI パッケージをダブルクリックしてインストールを開始します。
インストーラの指示に従ってインストールを進めます。
3. PowerShell 7 の起動
インストールが完了したら、新しい PowerShell 7 を起動します。スタートメニューから PowerShell 7 を探して起動するか、以下のコマンドを実行します。
pwsh
4. VS Code での設定
VS Code を再起動し、PowerShell 7 のシェルを使用していることを確認します。
-
- VS Code を開きます。
-
- Ctrl + Shift + P を押してコマンドパレットを開きます。
-
- Terminal: Select Default Profile を検索して選択します。
- Terminal: Select Default Profile を検索して選択します。
-
- リストから PowerShell 7(またはインストールしたバージョン)を選択します。
- リストから PowerShell 7(またはインストールしたバージョン)を選択します。
これで、前のPCと同じように使えるようになりました😂🧚♀️
Discussion