Windows Terminal でかっこいい PowerShell 環境を構築する
目標
- かっこいいターミナル環境を整える
- 使うシェルは PowerShell を想定
- Windows なら PowerShell がオススメとお教え頂いたので
- 管理者権限実行出来るようにしたい → gsudo
-
git も扱いやすくしたい → lazygit- コミットメッセージ等で日本語を使うと正しく表示されない
- 一括で git restore, git clean が出来なさそう
- → などの理由でやめた
Windows Terminal の導入
- Win11 ならデフォルトで入っている
- Win10 なら Microsoft Store からインストール
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
oh-my-posh を導入して PowerShell をかっこいい見た目にする ~ 導入編
oh-my-posh のインストール
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 が読み込めているか確認。
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 を開き直す。
gsudo の導入
bash の sudo
のように、 PowerShell コマンド上で管理者権限実行ができると色々便利なので gsudo を導入する。
winget install gerardog.gsudo
エイリアスの設定
bash と同じく sudo
コマンドで実行できるようにエイリアスを設定する。
プロファイルを開く。
notepad $profile
以下を追記する。
Set-Alias sudo gsudo
Lazygit の導入
Git を扱いやすくするため、Git の TUI クライアント 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 が出来なさそう
などの理由で使用を取りやめた
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
上記を参考に設定追加
タブ補完を一覧表示
以下を $profile に追記
Set-PSReadLineKeyHandler -Key Tab -Function MenuComplete
ファイルやフォルダのアイコン表示
インストール
Install-Module -Name Terminal-Icons -Repository PSGallery
以下を $profile に追記
Import-Module -Name Terminal-Icons