PowerShell Core に PowerLine を導入する
ブログ記事 PowerShell を”いい子”にして、WSL から ”推し変”した | cloud.config Tech Blog の環境を構築しようとしたが、PowerShell Core にはそのままの手順で適用できなかった。
該当記事で触れられていない部分も含めて、自分の環境を構築したときのメモを残しておく。
前提条件
- Windows Terminal がインストールされている
Microsoft ストアからインストールする。 - PowerShell Core がインストールされている
GitHub の Releases から、最新版の msi をダウンロードして使っている。
2021 年 3 月 1 日時点の最新版は v7.1.2 。 - Scoop がインストールされている
公式サイト の手順のとおりにインストールする。
1. 必要なコマンドをインストールする
Scoop を使い、次のコマンドをインストールする。
-
git
: Git -
gsudo
: Linux のsudo
と同じ。管理者権限でコマンドを実行するためのユーティリティ。 -
vim
: ターミナル上で動くエディタ。途中でファイルをいじるので、必要に応じてインストールする。
> scoop install git
> scoop install gsudo
> scoop install vim
2. 必要なフォントをインストールする
次のコマンドを実行し、Cascadia 関連の 3 つのフォントをインストールする。(3 つも要らないかも)
> gsudo scoop install Cascadia-Code
> gsudo scoop install CascadiaCode-NF
> gsudo scoop install CascadiaCode-NF-Mono
3. Windows Terminal のフォント設定
ここは記事で詳しく触れられていないところ。
Windows Terminal のフォントに、先ほどインストールしたフォント Cascadia Code PL
を設定する。
// 中略
{
"guid": "{574e775e-4f2a-5b96-ac1e-a2962a402336}",
"hidden": false,
"name": "PowerShell",
"source": "Windows.Terminal.PowershellCore",
// 追加
"fontFace": "Cascadia Code PL"
},
// 中略
4. PowerLine インストール
PowerShell Core で次のコマンドを実行し、PowerLine をインストールする。
> Install-Module -Name posh-git -Scope CurrentUser
> Install-Module -Name oh-my-posh -Scope CurrentUser
> Install-Module -Name PSReadLine -Scope CurrentUser -Force -SkipPublisherCheck
5. プロファイル ($PROFILE) 設定
PowerShell Core の起動時に呼ばれるプロファイル ($PROFILE 変数で指定されるスクリプト) に、PowerLine を適用するコマンドを追加する。
# プロファイルスクリプトが存在するかどうかをチェック。
# False が返ってきたら、スクリプトファイルが存在しないので、作成する。
> Test-Path -Path $PROFILE
# 空のスクリプトファイルを作成する。
> New-Item -Name $PROFILE -ItemType File
$PROFILE
に、次のコマンドを記載する。
# PowerLine
Import-Module posh-git
Import-Module oh-my-posh
Set-PoshPrompt -Theme paradox
ブログ記事では、テーマを設定する際に Set-Theme
というコマンドを実行していたが、見つからなかった。
oh-my-posh のサイト を参考に、Set-PoshPrompt
に変更した。
6. インストール確認
Windows Terminal を再起動し、次のような表示になることを確認する。
トラブルシューティング
PowerLine の表示が文字化けしている
Windows Terminal のフォントを指定していない、または指定に誤りがある場合、PowerLine の表示が文字化けします。
手順 3 を見直して、Windows Terminal の設定ファイル (json) に、キー fontFace
、値 Cascadia Code PL
が設定されていることを確認する。
Discussion