Closed9

Windows Terminal でかっこいい PowerShell 環境を構築する

TigRigTigRig

目標

  • かっこいいターミナル環境を整える
  • 使うシェルは PowerShell を想定
    • Windows なら PowerShell がオススメとお教え頂いたので
  • 管理者権限実行出来るようにしたい → gsudo
  • git も扱いやすくしたい → lazygit
    • コミットメッセージ等で日本語を使うと正しく表示されない
    • 一括で git restore, git clean が出来なさそう
    • → などの理由でやめた
TigRigTigRig

Windows Terminal の導入

  • Win11 ならデフォルトで入っている
  • Win10 なら Microsoft Store からインストール

TigRigTigRig

PowerShell の環境を整える

最新の PowerShell をインストール

上図のように 新機能の改善のために最新の PowerShell をインストールしてください と毎回出てくるが気になる(&最新の機能使いたい)ので、最新版をインストールする。

PowerShell 上に表示されている URL を開き、案内にしたがって最新の PowerShell をインストールする。(インストール方法は様々あるが、今回は winget の方法を選んだ)

公式ページ → Winget を使用して PowerShell をインストールする (推奨)

winget search Microsoft.PowerShell

winget install --id Microsoft.Powershell --source winget

以上でインストールは完了

最新バージョンの PowerShell を WindowsTerminal で表示する

ターミナルのタブ追加『+』ボタン隣の『v』ボタンをクリックすると、 PowerShell が2つある。新たに追加された方の PowerShell を選択する。

※PowerShell が2つ出てこない場合 ↓

Ctrl + , ショートカットで設定を開き、左側サイドバーで PowerShell を選択。

『コマンドライン』欄のパスを先程インストールした PowerShell のパスに変更する。(PowreShell7 のデフォルトインストール先は以下)

C:\Program Files\PowerShell\7\pwsh.exe

実行ポリシーの変更

PowerShell を立ち上げたときに以下のようなエラーメッセージが表示される場合の対応。

.: File D:\TigRig\Documents\PowerShell\Microsoft.PowerShell_profile.ps1 cannot be loaded because running scripts is disabled on this system. For more information, see about_Execution_Policies at https://go.microsoft.com/fwlink/?LinkID=135170.

あるいはこんな感じかも

このシステムではスクリプトの実行が無効になっているため、ファイル D:\TigRig\Documents\PowerShell\Microsoft.PowerShell_profile.ps1 を読み込
むことができません。詳細については、「about_Execution_Policies」(https://go.microsoft.com/fwlink/?LinkID=135170) を参照
してください。

上記のメッセージが出た際は、実行ポリシーを RemoteSigned に変更することで対処できる。

まず WindowsTerminal を管理者権限で実行する。(Windows マークを右クリック → 『ターミナル(管理者)』を実行など)

PowerShell で以下のコマンドを実行する。

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
TigRigTigRig

oh-my-posh を導入して PowerShell をかっこいい見た目にする ~ 導入編

oh-my-posh のインストール

https://ohmyposh.dev/

winget install JanDeDobbeleer.OhMyPosh -s winget

oh-my-posh が正しく導入できているか確認

プロファイルを開く。

notepad $profile
# VSCode で開くなら code $profile

oh-my-posh の初期化スクリプトを設定する。

oh-my-posh init pwsh | Invoke-Expression

新規に PowerShell を立ち上げ、 oh-my-posh が読み込めているか確認。

TigRigTigRig

oh-my-posh を導入して PowerShell をかっこいい見た目にする ~ 設定編

oh-my-posh 用のフォントをインストール

※ oh-my-posh では git のブランチアイコンなどの特殊記号を表示するため、フォントをインストールする必要がある(しないと文字化けする)。

oh-my-posh font install

※もし You need to be administrator to install a font as system font. と表示されたら管理者権限でターミナルを実行して再度試す。

続いてインストールしたフォントを PowerShell のフォントとして設定する。

一旦ターミナルを終了し、再度ターミナルを立ち上げる。その後 Ctrl + , ショートカットで設定を開き、左側サイドバーで PowerShell を選択 → 下部の『外観』をクリック。

『フォントフェイス』に先程インストールしたフォント系列の好きなものを設定。(最後に右下『保存』をクリック)

oh-my-posh のテーマを選択、設定

oh-my-posh のテーマ一覧を表示し、好きなテーマを探す。

※予め git リポジトリに cd しておくと git の表示も確認できて良い

Get-PoshThemes

良いテーマを見つけたら、テーマ名を控えて以下の作業を行う。

PowerShell プロファイルを開く。

noteptad $profile

導入編で設定した oh-my-posh 初期化スクリプトを削除して、以下のスクリプトに書き換える。( {ココに選んだテーマ名} は選んだテーマ名に変更する)

oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\{ココに選んだテーマ名}.omp.json" | Invoke-Expression
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\emodipt-extend.omp.json" | Invoke-Expression

プロファイルを保存して、 PowerShell を開き直す。

TigRigTigRig

gsudo の導入

bash の sudo のように、 PowerShell コマンド上で管理者権限実行ができると色々便利なので gsudo を導入する。

https://gerardog.github.io/gsudo/docs/intro

winget install gerardog.gsudo

エイリアスの設定

bash と同じく sudo コマンドで実行できるようにエイリアスを設定する。

プロファイルを開く。

notepad $profile

以下を追記する。

Set-Alias sudo gsudo
TigRigTigRig

Lazygit の導入

Git を扱いやすくするため、Git の TUI クライアント Lazygit を導入する。

https://github.com/jesseduffield/lazygit

コミットの入れ替えやコミットメッセージの変更、行単位のコミット……などコマンドで行うのが面倒な操作がターミナル上で簡単に、かつキーボード操作で高速に行えるところが魅力的で Lazygit 導入を決めた。

Lazygit インストール

上記公式の GitHub ページには Windows のインストール方法として winget が記載されていないが、一応使える模様。

winget が準備必要なく一番手軽なので、 winget でインストールする。

winget install JesseDuffield.lazygit

Lazygit 導入できているか確認

Path 環境変数が更新されているので、一度ターミナルを再起動する。

また Git 管理されているディレクトリに移動した後、コマンド lazygit を実行。

次のような TUI が立ち上がればOK

2023/08/13 追記

  • コミットメッセージ等で日本語を使うと正しく表示されない
  • 一括で git restore, git clean が出来なさそう

などの理由で使用を取りやめた

TigRigTigRig

posh-git のインストール

posh-git なぜ使うか

  • PowerShell 上で Git の入力補完を効かせるため

インストール

以下を実行

Install-Module posh-git -Scope CurrentUser -AllowPrerelease -Force

$profile に追記

posh-git を利用するため、 プロファイルに posh-git 読み込みコードを追記する

notepad $profile

以下を追記

Import-Module posh-git
このスクラップは2023/08/19にクローズされました