6
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

スタンバイAdvent Calendar 2024

Day 6

zimfwで自分好みのプロンプトを試しに作ってみた!

Last updated at Posted at 2024-12-05

:santa: はじめに

この記事は、スタンバイ Advent Calendar 2024の記事として書いております!
ついに6日目の記事となりました! :tada:

今回は、私が好きで使っている Zsh のフレームワークである Zim のプロンプトを試しに作ってみたので、作成方法や作成物についてご紹介したいと思います!

:no_good: この記事では話さないこと :no_good:

  • Zsh とはなにか?という話は長くなるので割愛します
  • Zim のインストール方法については、公式ドキュメントに記載があるため触れません

:rocket: Zimとは

Zim とは、Zsh をより便利にするための以下の機能を提供してくれます。

  1. プラグインマネージャー機能
  2. 機能を拡張するモジュールの提供
  3. プロンプトをおしゃれにするテーマ

有名どころでいうと、oh-my-zsh が有名かなと思います。

oh-my-zsh と比べて Zim の良い点は、特に何もしなくてもデフォルトで起動速度が速いことです!
普段は Tmux を使って複数ウィンドウを立ち上げて作業することが多いので、「速さは正義」ということで長く愛用しています。
また、開発も継続されており、開発者の方には頭が上がりません :bow:

:shamrock: プロンプトを作りたいと思ったきっかけ

Zim には公式が提供するテーマがあり、すぐにおしゃれなテーマを使えます。
しかし、「こういうデザインがいい!」や「この情報を表示したい!」といった複雑な要望がある場合、既存のテーマでは叶えられないことがあります。

今回、私がテーマを作るきっかけとなったのは、Kubernetes の context や namespace をプロンプトに表示したいと思ったことです。
業務で Kubernetes を触っていると、選択している context や namespace をさっと確認したくなる場面が多く、毎回コマンドを打つのが面倒でした。
そこで、プロンプトに表示させようと思い立ちました。しかし、既存のテーマには Kubernetes の情報を表示するものがなかったため、自分で作ることにしました!

:wrench: Zimのプロンプトの作り方について

Zim のプロンプトを作るのは初めてだったので、まず調べましたが、公式ドキュメントには作成方法がありませんでした…。

ただ、公式テーマは zmodule という Zim のモジュール管理機能と同じ形で設定できます。
独自に作ったものも zmodule で読み込ませれば良さそうだと分かりました。

zmodule の読み込み方法は、README にまとまっており、以下が参考になりました。

実際のテーマも OSS で公開されており、とても参考になります。
以下のリンクは asciiship というテーマのコードです。50行程度で簡単に作れることがわかります。
Git の情報は別モジュールとして提供されているため、簡単に表示できます。

:sparkles: 作成したプロンプトの紹介

今回は下記のようなプロンプトを作成しました!
表示したかった下記の情報を盛り込んだプロンプトにしています。

  • kubernetesの関連情報
  • Gitの情報 ← 今まで使っていたので、作ったやつにも表示できるようにしました
  • 時刻表示 ← 時刻表示はあると便利なので、表示できるようにしました
2024-12-02 11:18:36 (⎈|kube-context:namespace) main [!] $

Kubernetes の情報は kube-ps1 という OSS を zmodule で読み込ませることで問題なく動作しました。

時刻表示は 1 秒ごとに更新するようにし、常に最新の時刻を表示できるようにしています。

作成したプロンプトは以下に公開しています。ご利用は自己責任でお願いします :bow:
30分ほどで作成したので、粗がありますのでご了承ください :bow:

:star: まとめ

当初欲しかったプロンプトを作成できました!
30行程度のスクリプトで作れるため、とてもお手軽でした。
今後もこのプロンプトを育てていきたいと思います。

6
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?