zshでそれなりにかっこよくて使いやすいターミナル環境構築メモ(2023-11)

新しいPCを入手したので、zshの環境構築をしたときのメモです。
Macを使っていますが、近々linuxの環境構築もする予定なのでそちらでもやり方を応用できるようにbrewとか使わずに構築しました。

以下のような方の参考になれば幸いです。

  • かっこいいターミナルを使いたいけど、そこまで環境マニアではない。
  • ちょっとしたカスタマイズはしたいけど、ごりごり設定ファイルを書きたくない。
  • zshのカジュアルユーザーで、bash使いたくないからとりあえずそれなりの環境にしたい。

途中にキーワードやリンクを散らばせていくので、それらを参考にカスタマイズしていくと良いかと思います。

結果はこんな感じになりました。

使ったモジュール等

(Macの方用) iTerm2

  • 使いにくいMac標準のターミナルの代わりとなる定番のターミナルアプリ
  • iTerm2からダウンロードしてインストール
  • (自分の場合不要だったがもしかすると)Powerlevel10kのフォントインストール後に、iTerm2のフォントを'MesloLGS NF'に変更する。

Prezto (zsh環境構築フレームワーク)

  • oh-my-zshより軽量で起動が速いらしい、設定もシンプル
  • 公式インストール方法を見てインストール
  • 自分はまっさらのマシンだったので、公式サイト3のスクリプトを実行しただけ。
  • 既に.zshrcがあって設定を保持したい人は、.zshrcの最後にsource "${ZDOTDIR:-$HOME}/.zprezto/init.zsh"を追加すればいいらしい。

(おまけ)設定ファイルのgit管理

Preztoを使うとzsh系の設定ファイルが~/.zprezto/runcomsに置かれて、ホーム直下のファイルはsymlinkになる。.zpreztoはもともとgitリポジトリをcloneしてできたディレクトリなので、元のリポジトリをforkしておいて、git remote set-url origin forkした自分のリモートリポジトリURLすれば、そのまま設定ファイルの変更がgit管理できてあとあと便利。

Powerlevel10k (Preztoのテーマ)

Preztoではいろいろテーマが選べて、大体の紹介サイトではprompt -pでプレビュー見て好きなの選べばいいよって書いてあるけど、なぜか2023-11-15現在、powerlevel10kはプレビューに表示されないので見逃されがち。(prompt -lにはリストアップされている)

Powerlevel10kは、最初の導入時にめちゃめちゃ親切な対話型の設定機能があり簡単に細かくカスタマイズできる。
この設定機能とかわいいアイコンがおすすめの理由です。

インストールは、~/.zpreztorczstyle ':prezto:module:prompt' theme の値を'powerlevel10k'に変更するだけ。(大文字小文字に注意)
zsh再起動すると、対話型の設定が始まるので、好きなように設定していく。

注意点1: 設定のPrompt StyleのところでPureを選んでしまうと機能が少なくなってしまう(git連携できない等)ので、シンプル志向の方はLeanを選んだほうが良いです。

注意点2: 設定の最初に推奨フォントのインストールを勧めてくるので、それをインストールすること。しないとアイコンが文字化けします。

プロンプトの見かた紹介

自分の設定でのプロンプトの見かたを左から紹介します。

左側

  • リンゴマーク: Macのローカルマシンであることを示している
  • フォルダマークと文字列: 現在のディレクトリ
    • マークは、ホームディレクトリならおうちマーク、書き込み権限ないときは鍵マークに変化し芸が細かい。
  • ねこのマーク: 今いるディレクトリがgitリポジトリでremote元がgithubであることを示している
  • 枝分かれマーク: 今いるディレクトリがgitのリポジトリであることを示している
  • その次の文字列: gitのブランチ名

右側

  • チェックマーク: コマンドがexit code 0で終了したことを示している
  • (赤地の)数字とバツマーク: exit code 0以外で終了したことを示していて、数値はexit codeの値を示している
  • (黄地の)文字列と砂時計マーク: 5sはコマンド実行にが5秒かかったことを示している
    • (たぶん)3秒以上かかると表示される
  • (白地の)文字列と時計マーク: プロンプトを表示したときの時刻

vscodeのterminalで文字化けしない設定

特別なフォントを使ってアイコンを表示しているので以下の設定をする必要があります。

設定のterminal.integrated.fontFamily'MesloLGS NF'を追加する。