直近のターミナル関連の記事の内容をまとめておきます.
前提
Windows 10 または 11
GitBash などの Git のCLIツールを使ったことがある程度の予備知識
目標として,次の機能を導入したい
- GitBash ライクな,コマンドごとに空行がはいるレイアウト.
- コマンドのTabキーによる自動補完
- ターミナルのウィンドウをタブで管理する
- Git リポジトリを認識して,ブランチを表示する
手順
Windows Terminal を導入する
Microsoft が作った純正ツールである,Windows Terminal を導入します.
すでに導入されているかどうか確認するには,「ターミナル」でシステム内を検索します.タスクバーにある虫眼鏡から検索してください.
導入されていなかった場合には,マイクロソフトストアからDLします.
この時点で,以下の機能が手に入ります.
配色テーマを変更する機能
ウィンドウの不透明度をいじる機能
複数のターミナルウィンドウをタブで管理する機能
GitBashをWindows Terminal から開くこともできます.ただし少し設定が必要な場合がありますので,それは調べてやってみてください.
PowerShell のバージョンアップ
PowerShell を開いて,バージョンを確認してください.どうすれば良いかというと,$PSVersionTable
と打って実行すればよいです.
PSVersion という行に表示されているのが,実行している PowerShell のバージョンです.
最新版を確認するには,GitHub の PowerShell のリポジトリ に飛んで Releases のところの数字を見てください.
最新版のほうが新しい場合には,当該リポジトリの Get PowerShell のテーブルからダウンロードしてください.
インストールが終了した後で Windows Terminal を再起動すると,プロファイルに黒い PowerShell が追加されています.それを開いて,再度 $PSVersionTable
を実行してみましょう.
アップデートされているはずです.
この時点で,いくつかモダンな機能が備わっています.
ls
コマンドを実行したときの列名が色付けされるTab によってディレクトリ名やファイル名,コマンド名を補完することができる
確認してみましょう.
Predictive IntelliSense を有効化する
PowerShell のバージョンを最新のものにしたので,Predictive IntelliSense が使えるようになります.
code $PROFILE
( code
の部分は任意のテキストエディタでかまいません.notepad
でも可) を実行して,PowerShell のプロファイルを VSCode で開きます.
そして,末尾に
Set-PSReadLineOption -PredictionSource History
を追加します.
これで履歴ベースの入力補完が使えるようになります.使い方は,入力中に暗めの文字で入力予測がでたら →
キーを押して確定するだけです.
さらなるカスタマイズ
すでにだいぶモダンになっています.git のコマンドも使うことができます.試しに git status
とか打ってみてください.
しかし,ここで止まる道理はありません.さらにカスタマイズしていきましょう.
ターミナルのカスタマイズにはいろんな選択肢があって,私の知る限り有力なものとして
Starship
Oh My Posh
などがあります.
どちらが良いかは趣味ですね. Oh My Posh のほうは マイクロソフトによるドキュメントで採用されていますが,Starship のほうが GitHub でのスターが多いです.
ここでは両方紹介しようかと思います.
Nerd Font 導入
いずれにせよ今後必要になるので,Nerd Font を導入します.Nerd Fontの中にもいろんなフォントがあるので,好きなのを選びましょう.私は Starship の README に書いてあった FiraCode Nerd Font にしました.
DLしたら,このフォントをインストールします.方法は例によって Microsoft のドキュメント に書かれています.ここでは C:\Windows\Fonts
に解凍したフォントのファイルをそのまま貼り付ける方法を採用します.
これで Windows にフォントが入りました.さらに Windows Terminal にもインストールします.これは,PowerShell のプロファイルを開いてフォントフェイスを変更すればいいだけです.失敗する場合は,一度 Windows Terminal を再起動してください.
フレームワーク導入
ルート1: Oh My Posh
では Oh My Posh ルートの説明をします.
Oh My Poshのドキュメント を読みながらインストールをします.まずは
winget install JanDeDobbeleer.OhMyPosh -s winget
というコマンドを実行し,インストールします.(結構時間がかかるので気長に待ちましょう)
インストールしただけではまだ適用されません.
code $PROFILE
というコマンドを打ちまして,PowerShell のプロファイルを VSCode で開きます.公式ドキュメントでは notepad (メモ帳) で開くことになっていますが,メモ帳だと「そのパスのファイルはない」と言われることがあります.たぶんメモ帳でも何か設定すれば開けると思いますが.
ここまで設定したら ターミナルを再起動します.こんな感じになっていれば成功です.
ルート2: Starship
Starship のほうも見ていきましょう. Starship の GitHubリポジトリ に書いてある通り,
winget install --id Starship.Starship
を実行します.
次にやることは Oh My Posh のときと同じで,code $PROFILE
からプロファイルの編集をします.
Invoke-Expression (&starship init powershell)
を末尾に付け加えるだけです.(保存するのを忘れないように)
その後にターミナルを再起動すると,こんな感じになります.
Oh My Posh と Starship 比較
この辺りは趣味の範疇ですが,デフォルトの状態では Starship のほうが見やすいと思います.
コマンドと,コマンドの実行結果の間に自動で空行を入れてくれたりするのが親切ですよね.あとOh My Posh はちょっと色がくどい感じがします.
まあ自力でカスタマイズすればいい話なんですが,ターミナルのカスタマイズってけっこうな沼なので,あまり深入りしたくないという人が多いんじゃないかなと思います.