シェルのプロンプトをStarshipにして約1ヶ月が経過した

技術・テクノロジー

自分はこれまでかなり長い間 少し凝った zshrc の設定をベースに Zsh を使ってきたのですが、ふと気分でそろそろ別のプロンプトに変えても良いんじゃないか?と思い、評判が良さそうな Starship に乗り換えることにしてみました。

Starshipとは?

公式サイトによると 互換性が高く、Rust 製で高速であり、カスタマイズ性に優れたプロンプト です。

brew ですぐに入れられます。少し特殊なのは Nerd Font を入れておくと良いくらいで、設定も簡単にできて非常に良かったです。 自分は Zsh で使っていますが、Bash や Fish 等にも対応しているのも嬉しいですね。

brew install starship

Zsh の場合:

# ~/.zshrc

eval "$(starship init zsh)"

自分はフォントに FiraCode NF を使っており、iTerm2 の Profiles → Text → Font から設定しています。リガチャは使っていません。

おすすめポイント

まず、速度は確かに高速かと思います。元々そこまで凝った設定を行っていなかったため、Starship を入れることによって多少遅くなるんじゃないか?と最初は心配に思っていましたが、現状全く問題ありません(体感レベルの話ですが)。

次に、カスタマイズ性に優れているのが良いですね。自分は妙なこだわりがあって、プロンプトの表示はこれがいい!みたいなものがあります。

そのため、ある程度プロンプトの表示を変更できる方がありがたいのですが、Starship は設定が簡単に出来る割にカスタマイズ性が高く、非常に使いやすいなと思いました。

参考までに、自分の設定ファイルを載せておきます。

# .config/starship.toml

add_newline = false
command_timeout = 2000

[aws]
disabled = true
[gcloud]
disabled = true
[time]
disabled = false
time_format = "%Y/%m/%d %H:%M"
[directory]
truncation_length = 10
truncate_to_repo = false
[username]
style_user = "white bold"
disabled = false
show_always = true
[hostname]
ssh_only = false
format = "[$hostname](bold red) "
disabled = false
[custom.arch]
command = "uname -m"
when = """ test $(uname -m) = "x86_64" """
style = "bold red"
format = "[$output]($style) "

各種設定項目に関しては 設定 | Starship から確認できます。日本語対応しているのも地味に嬉しいポイントですね。