0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

オシャレで便利なプロンプトといえばstarship

Posted at

メリークリスマス!開発環境を紹介します Advent Calendar 2024です。

今日も今日とて隙間産業。
本日紹介するのは、前回hyperfineの動作を紹介したときにも見えていた、シェルのプロンプトです。

プロンプトとは

bashやzashやfishなどのシェルで、自分のコマンドの前にでる文字列のことです。
曖昧さ回避のために、シェルプロンプトと言ったほうがいいかもしれません。1

例えばbashの最小構成でのプロンプトを表示してみます。
バッシュバージョンのみが表示される、bash-5.2$というシンプルなプロンプトです。

image.png

この見た目は環境変数PS1で設定できます。
GIT_PS1_*などを設定している人も多いのではないでしょうか。
とはいえ、独特な構文で設定する必要があり、メンテナンスには苦労させられます。

Starship

そこで紹介するのがStarshipです。
Rust製の簡単・高速・オシャレなプロンプトツールです。
bash以外にも多くのシェルに対応しており、表示できるツール情報の種類も多いです。

例えばインストールするだけでカスタマイズ無しに以下のようなプロンプトが使えます。

image.png

ここに表示されているのは、次のような情報です。

  • カレントディレクトリ
  • カレントディレクトリのレポジトリ情報
  • カレントディレクトリのツール情報
  • バックグラウンドプロセスの有無
    • 青色の♦マークでわかります

私の環境

参考までに、私のプロンプトについてを書いておきます。
かわいいですね。

Ubuntuデフォルトのbashプロンプトに近づけています。
またGit情報も慣れ親しんだGIT_PS1_*表記に近づけています。

スクリーンショット

image.png

設定

~/.config/starship.toml
[username]
show_always = true
format = '[$user]($style)[@](green)'
style_user = 'bold green'
[hostname]
ssh_only = false
format = '[$ssh_symbol$hostname]($style):'
style = 'bold green'
[directory]
truncation_length = 10
truncate_to_repo = false
before_repo_root_style = 'blue'
repo_root_style = 'bold cyan'
[git_branch]
format = '[$symbol$branch(:$remote_branch)]($style) '
[git_status]
ahead = '>'
behind = '<'
diverged = '<>'
modified = '*'
typechanged = '!'
up_to_date = "="
conflicted = "|CONFLICT"
[character]
success_symbol = '[\$](bold green)'
error_symbol = '[\$](bold red)'

まとめ

Starshipの紹介でした。
シェルをよく使うなら、気分が上がるStarshipを使ってみよう!

  1. 最近ではプロンプトというとLLMの入力のほうがメジャーかもしれません。さらにWindowsのcmdの名称はコマンドプロンプトと、検索性が低くなりつつあります。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?