はじめに
この記事は、スタンバイ Advent Calendar 2024の記事として書いております!
ついに6日目の記事となりました!
今回は、私が好きで使っている Zsh のフレームワークである Zim のプロンプトを試しに作ってみたので、作成方法や作成物についてご紹介したいと思います!
この記事では話さないこと
- Zsh とはなにか?という話は長くなるので割愛します
- Zim のインストール方法については、公式ドキュメントに記載があるため触れません
Zimとは
Zim とは、Zsh をより便利にするための以下の機能を提供してくれます。
- プラグインマネージャー機能
- 機能を拡張するモジュールの提供
- プロンプトをおしゃれにするテーマ
有名どころでいうと、oh-my-zsh が有名かなと思います。
oh-my-zsh と比べて Zim の良い点は、特に何もしなくてもデフォルトで起動速度が速いことです!
普段は Tmux を使って複数ウィンドウを立ち上げて作業することが多いので、「速さは正義」ということで長く愛用しています。
また、開発も継続されており、開発者の方には頭が上がりません
プロンプトを作りたいと思ったきっかけ
Zim には公式が提供するテーマがあり、すぐにおしゃれなテーマを使えます。
しかし、「こういうデザインがいい!」や「この情報を表示したい!」といった複雑な要望がある場合、既存のテーマでは叶えられないことがあります。
今回、私がテーマを作るきっかけとなったのは、Kubernetes の context や namespace をプロンプトに表示したいと思ったことです。
業務で Kubernetes を触っていると、選択している context や namespace をさっと確認したくなる場面が多く、毎回コマンドを打つのが面倒でした。
そこで、プロンプトに表示させようと思い立ちました。しかし、既存のテーマには Kubernetes の情報を表示するものがなかったため、自分で作ることにしました!
Zimのプロンプトの作り方について
Zim のプロンプトを作るのは初めてだったので、まず調べましたが、公式ドキュメントには作成方法がありませんでした…。
ただ、公式テーマは zmodule
という Zim のモジュール管理機能と同じ形で設定できます。
独自に作ったものも zmodule
で読み込ませれば良さそうだと分かりました。
zmodule
の読み込み方法は、README にまとまっており、以下が参考になりました。
実際のテーマも OSS で公開されており、とても参考になります。
以下のリンクは asciiship
というテーマのコードです。50行程度で簡単に作れることがわかります。
Git の情報は別モジュールとして提供されているため、簡単に表示できます。
作成したプロンプトの紹介
今回は下記のようなプロンプトを作成しました!
表示したかった下記の情報を盛り込んだプロンプトにしています。
- kubernetesの関連情報
- Gitの情報 ← 今まで使っていたので、作ったやつにも表示できるようにしました
- 時刻表示 ← 時刻表示はあると便利なので、表示できるようにしました
2024-12-02 11:18:36 (⎈|kube-context:namespace) main [!] $
Kubernetes の情報は kube-ps1
という OSS を zmodule
で読み込ませることで問題なく動作しました。
時刻表示は 1 秒ごとに更新するようにし、常に最新の時刻を表示できるようにしています。
作成したプロンプトは以下に公開しています。ご利用は自己責任でお願いします
30分ほどで作成したので、粗がありますのでご了承ください
まとめ
当初欲しかったプロンプトを作成できました!
30行程度のスクリプトで作れるため、とてもお手軽でした。
今後もこのプロンプトを育てていきたいと思います。