メリークリスマス!開発環境を紹介します Advent Calendar 2024です。
今日も今日とて隙間産業。
本日紹介するのは、前回hyperfineの動作を紹介したときにも見えていた、シェルのプロンプトです。
プロンプトとは
bashやzashやfishなどのシェルで、自分のコマンドの前にでる文字列のことです。
曖昧さ回避のために、シェルプロンプトと言ったほうがいいかもしれません。1
例えばbashの最小構成でのプロンプトを表示してみます。
バッシュバージョンのみが表示される、bash-5.2$
というシンプルなプロンプトです。
この見た目は環境変数PS1
で設定できます。
GIT_PS1_*
などを設定している人も多いのではないでしょうか。
とはいえ、独特な構文で設定する必要があり、メンテナンスには苦労させられます。
Starship
そこで紹介するのがStarshipです。
Rust製の簡単・高速・オシャレなプロンプトツールです。
bash以外にも多くのシェルに対応しており、表示できるツール情報の種類も多いです。
例えばインストールするだけでカスタマイズ無しに以下のようなプロンプトが使えます。
ここに表示されているのは、次のような情報です。
- カレントディレクトリ
- カレントディレクトリのレポジトリ情報
- カレントディレクトリのツール情報
- バックグラウンドプロセスの有無
- 青色の♦マークでわかります
私の環境
参考までに、私のプロンプトについてを書いておきます。
かわいいですね。
Ubuntuデフォルトのbashプロンプトに近づけています。
またGit情報も慣れ親しんだGIT_PS1_*
表記に近づけています。
スクリーンショット
設定
[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を使ってみよう!
-
最近ではプロンプトというとLLMの入力のほうがメジャーかもしれません。さらにWindowsのcmdの名称はコマンドプロンプトと、検索性が低くなりつつあります。 ↩