💪

PowerShell Core に PowerLine を導入する

2021/03/02に公開

ブログ記事 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