25 KiB
設定
::: tip 🔥Starshipの開発は現在も進んでいます。多くの新しいオプションが今後のリリースで利用可能になります。 :::
starshipの設定を開始するには、~/.config/starship.toml
ファイルを作成します。
$ touch ~/.config/starship.toml
starshipのすべての設定は、このTOMLファイルで行われます。
# プロンプト表示時に改行しない
add_newline = false
# "❯" から "➜" に表示を変更
[character] # The name of the module we are confguring is "character"
symbol = "➜" # The "symbol" segment is being set to "➜"
# packageモジュールを無効にする
[package]
disabled = true
用語
モジュール: OSのコンテキスト情報に基づいて情報を提供するプロンプト内のコンポーネントです。たとえば、現在のディレクトリがNodeJSプロジェクトである場合、「nodejs」モジュールは、現在コンピューターにインストールされているNodeJSのバージョンを表示します。
セグメント: モジュールを構成する小さなサブコンポーネントです。たとえば、「nodejs」モジュールの「symbol」セグメントには、バージョン番号の前に表示される文字が含まれています(デフォルト: ⬢)。
以下はNode モジュールの表現です。次の例では、「シンボル」と「バージョン」はその中のセグメントです。すべてのモジュールには、デフォルトの端末色であるprefixとsuffixもあります。
[prefix] [symbol] [version] [suffix]
"via " "⬢" "v10.4.1" ""
スタイルの設定
starshipのほとんどのモジュールでは、表示スタイルを設定できます。これは、設定を指定する文字列であるエントリ(style
)で行われます。スタイル文字列の例とその機能を次に示します。完全な構文の詳細については、詳細は 高度な設定を参照してください 。
"fg:green bg:blue"
は、青色の背景に緑色のテキストを設定します"bg:blue fg:bright-green"
は、青色の背景に明るい緑色のテキストを設定します"bold fg:27"
は、 ANSIカラー 27の太字テキストを設定します"underline bg:#bf5700"
は、焦げたオレンジ色の背景に下線付きのテキストを設定します"bold italic fg:purple"
は、紫色の太字斜体のテキストを設定します""
はすべてのスタイルを明示的に無効にします
スタイリングがどのように見えるかは、端末エミュレータによって制御されることに注意してください。たとえば、一部の端末エミュレータはテキストを太字にする代わりに色を明るくします。また、一部のカラーテーマは通常の色と明るい色と同じ値を使用します。また、斜体のテキストを取得するには、端末で斜体をサポートする必要があります。
プロンプト
これは、プロンプト全体のオプションのリストです。
オプション
変数 | デフォルト | 説明 |
---|---|---|
add_newline |
true |
プロンプトの開始前に新しい行を追加します。 |
prompt_order |
link | プロンプトモジュールを出力する順序を設定します。 |
設定例
# ~/.config/starship.toml
# プロンプト表示の改行を無効にする
add_newline = false
# デフォルトのプロンプト表示順を書き換える
prompt_order=["rust","line_break","package","line_break","character"]
デフォルトのプロンプト表示順
default_prompt_order
オプションは、空またはprompt_order
が指定されていない場合に、プロンプトにモジュールが表示される順序を定義するために使用されます。デフォルトは次のとおりです。
default_prompt_order = [
"username",
"hostname",
"directory",
"git_branch",
"git_state",
"git_status",
"package",
"nodejs",
"ruby",
"rust",
"python",
"golang",
"nix_shell",
"cmd_duration",
"line_break",
"jobs",
"time",
"battery",
"character",
]
バッテリー
battery
モジュールは、デバイスのバッテリー残量と現在の充電状態を示します。モジュールは、デバイスのバッテリー残量が10%未満の場合にのみ表示されます。
オプション
変数 | デフォルト | 説明 |
---|---|---|
full_symbol |
"•" |
バッテリーが満タンのときに表示される記号です。 |
charging_symbol |
"⇡" |
バッテリーの充電中に表示される記号です。 |
discharging_symbol |
"⇣" |
バッテリーが放電しているときに表示される記号です。 |
display |
link | モジュールの閾値とスタイルを表示します。 |
disabled |
false |
battery モジュールを無効にします。 |
設定例
# ~/.config/starship.toml
[battery]
full_symbol = "🔋"
charging_symbol = "⚡️"
discharging_symbol = "💀"
バッテリーの表示
display
設定オプションは、バッテリーインジケーターを表示するタイミング(threshold)と見た目(style)を定義するために使用されます。
display
が設定されていない場合のデフォルトは次のとおりです:
[[battery.display]]
threshold = 10
style = "bold red"
オプション
display
オプションは、次の表の通りです。
変数 | 説明 |
---|---|
threshold |
バッテリーが表示される上限です。 |
style |
displayオプションが使用されている場合のスタイルです。 |
設定例
[[battery.display]] # バッテリー残量が0%〜10%の間は「太字の赤色」スタイルを利用する
threshold = 10
style = "bold red"
[[battery.display]] # バッテリー残量が10%〜30%の間は「太字の黄色」スタイルを利用する
threshold = 30
style = "bold yellow"
# 容量が30%を超えると、バッテリーインジケーターは表示されません
文字
character
モジュールは、端末でテキストが入力される場所の横に文字(通常は矢印)を表示します。
文字は、最後のコマンドが成功したかどうかを示します。これは、色の変更(赤/緑)またはその形状の変更(❯/✖)の2つの方法で行うことができます。後者はuse_symbol_for_status
にtrue
設定されている場合にのみ行われます。
オプション
変数 | デフォルト | 説明 |
---|---|---|
symbol |
"❯" |
プロンプトでテキストを入力する前に使用される記号です。 |
error_symbol |
"✖" |
前のコマンドが失敗した場合にテキスト入力の前に使用される記号です。 |
use_symbol_for_status |
false |
シンボルを変更してエラーステータスを示します。 |
vicmd_symbol |
"❮" |
シェルがvimの通常モードである場合、プロンプトのテキスト入力の前に使用される記号です。 |
style_success |
"bold green" |
最後のコマンドが成功した場合に使用されるスタイルです。 |
style_failure |
"bold red" |
最後のコマンドが失敗した場合に使用されるスタイルです。 |
disabled |
false |
character モジュールを無効にします。 |
設定例
# ~/.config/starship.toml
[character]
symbol = "➜"
error_symbol = "✗"
use_symbol_for_status = true
コマンド実行時間
cmd_duration
モジュールは、最後のコマンドの実行にかかった時間を示します。モジュールが表示されるのは、コマンドが2秒以上かかった場合、またはmin_time
値が存在する場合のみです。
::: warning BashでDEBUGトラップをhookしない
bash
でStarshipを実行している場合、 eval $(starship init $0)
実行した後にDEBUG
トラップをフックしないでください。そうしないと、このモジュールがおそらくですが壊れます。
:::
preexecのような機能を必要とするBashユーザーは、 rcalorasのbash_preexecフレームワークを使用できます。 eval $(starship init $0)
を実行する前に、preexec_functions
、およびprecmd_functions
定義するだけで、通常どおり続行します。
オプション
変数 | デフォルト | 説明 |
---|---|---|
min_time |
2 |
時間を表示する最短期間です。 |
style |
"bold yellow" |
モジュールのスタイルです。 |
disabled |
false |
cmd_duration モジュールを無効にします。 |
設定例
# ~/.config/starship.toml
[cmd_duration]
min_time = 4
ディレクトリ
directory
モジュールには、現在のディレクトリへのパスが表示され、3つの親フォルダは切り捨てられます。ディレクトリは、現在のgitリポジトリであるとルートとなります。
fishスタイルのpwdオプションを使用すると、切り捨てられたパスを非表示にする代わりに、オプションで有効にした番号に基づいて各ディレクトリの短縮名が表示されます。
たとえば、~/Dev/Nix/nixpkgs/pkgs
で、nixpkgs
がリポジトリルートであり、オプションが1
に設定されている場合、~/D/N/nixpkgs/pkgsが表示されますが、以前はnixpkgs/pkgs
でした。
オプション
変数 | デフォルト | 説明 |
---|---|---|
truncation_length |
3 |
現在のディレクトリを切り捨てる親フォルダーの数です。 |
truncate_to_repo |
true |
現在いるgitリポジトリのルートに切り捨てるかどうかです。 |
fish_style_pwd_dir_length |
0 |
fish shellのpwdパスロジックを適用するときに使用する文字数です。 |
style |
"bold cyan" |
モジュールのスタイルです。 |
disabled |
false |
directory モジュールを無効にします。 |
設定例
# ~/.config/starship.toml
[directory]
truncation_length = 8
Git ブランチ
git_branch
モジュールは、現在のディレクトリにあるリポジトリのアクティブなブランチを表示します。
オプション
変数 | デフォルト | 説明 |
---|---|---|
symbol |
" " |
現在のディレクトリのリポジトリのブランチ名の前に使用されるシンボルです。 |
truncation_length |
2^63 - 1 |
gitブランチをX書記素に切り捨てます |
truncation_symbol |
"…" |
ブランチ名切り捨てられていることを示すための記号です。記号なしに「」も使用できます。 |
style |
"bold purple" |
モジュールのスタイルです。 |
disabled |
false |
git_branch モジュールを無効にします。 |
設定例
# ~/.config/starship.toml
[git_branch]
symbol = "🌱 "
truncation_length = "4"
truncation_symbol = ""
Git の進行状態
git_state
モジュールはgitディレクトリの進行状態を表します。
例: REBASING, BISECTING, その他
進捗情報がある場合(例: REBASING 3/10)はその情報も表示されます。
オプション
変数 | デフォルト | 説明 |
---|---|---|
rebase |
"REBASING" |
rebase 進行中に表示されるテキストです。 |
merge |
"MERGING" |
merge 進行中に表示されるテキストです。 |
revert |
"REVERTING" |
revert 進行中に表示されるテキストです。 |
cherry_pick |
"CHERRY-PICKING" |
cherry-pick 進行中に表示されるテキストです。 |
bisect |
"BISECTING" |
bisect 進行中に表示されるテキストです。 |
am |
"AM" |
apply-mailbox ( git am )の進行中に表示されるテキストです。 |
am_or_rebase |
"AM/REBASE" |
あいまいなapply-mailbox またはrebase が進行中のときに表示されるテキストです。 |
progress_divider |
"/" |
現在の進行量と合計進行量を分ける記号またはテキスト(例えば、 " of " 、 "3 of 10" )です。 |
style |
"bold yellow" |
モジュールのスタイルです。 |
disabled |
false |
git_state モジュールを無効にします。 |
設定例
# ~/.config/starship.toml
[git_state]
progress_divider = " of "
cherry_pick = "🍒 PICKING"
Git の状態
git_status
モジュールは、現在のディレクトリのリポジトリの状態を表すシンボルを表示します。
オプション
変数 | デフォルト | 説明 |
---|---|---|
conflicted |
"=" |
このブランチにはマージの競合があります。 |
ahead |
"⇡" |
このブランチは、追跡されるブランチよりも先にあります。 |
behind |
"⇣" |
このブランチは、追跡されているブランチの背後にあります。 |
diverged |
"⇕" |
このブランチは、追跡されているブランチから分岐しています。 |
untracked |
"?" |
作業ディレクトリに追跡されていないファイルがあります。 |
stashed |
"$" |
ローカルリポジトリ用のスタッシュが存在します。 |
modified |
"!" |
作業ディレクトリにファイルの変更があります。 |
staged |
"+" |
新しいファイルがステージング領域に追加されました。 |
renamed |
"»" |
名前が変更されたファイルがステージング領域に追加されました。 |
deleted |
"✘" |
ファイルの削除がステージング領域に追加されました。 |
show_sync_count |
false |
追跡されているブランチの先行/後方カウントを表示します。 |
style |
"bold red" |
モジュールのスタイルです。 |
disabled |
false |
git_status モジュールを無効にします。 |
設定例
# ~/.config/starship.toml
[git_status]
conflicted = "🏳"
ahead = "🏎💨"
behind = "😰"
diverged = "😵"
untracked = "🤷"
stashed = "📦"
modified = "📝"
staged = "➕"
renamed = "👅"
deleted = "🗑"
Golang
golang
モジュールは、現在インストールされているGolangのバージョンを示します。次の条件のいずれかが満たされると、モジュールが表示されます。
- カレントディレクトリに
go.mod
ファイルが含まれている - カレントディレクトリに
go.sum
ファイルが含まれている - カレントディレクトリに
glide.yaml
ファイルが含まれている - カレントディレクトリに
Gopkg.yml
ファイルが含まれている - カレントディレクトリに
Gopkg.lock
ファイルが含まれている - カレントディレクトリに
Godeps
ファイルが含まれている - カレントディレクトリに
.go
の拡張子のファイルが含まれている
オプション
変数 | デフォルト | 説明 |
---|---|---|
symbol |
"🐹 " |
Golangのバージョンを表示する前に使用される記号です。 |
style |
"bold cyan" |
モジュールのスタイルです。 |
disabled |
false |
golang モジュールを無効にします。 |
設定例
# ~/.config/starship.toml
[golang]
symbol = "🏎💨 "
ホスト名
hostname
モジュールには、システムのホスト名が表示されます。
オプション
変数 | デフォルト | 説明 |
---|---|---|
ssh_only |
true |
SSHセッションに接続されている場合にのみホスト名を表示します。 |
prefix |
"" |
ホスト名の直前に表示するprefixです。 |
suffix |
"" |
ホスト名の直後に表示するsuffixです。 |
style |
"bold dimmed green" |
モジュールのスタイルです。 |
disabled |
false |
hostname モジュールを無効にします。 |
設定例
# ~/.config/starship.toml
[hostname]
ssh_only = false
prefix = "⟪"
suffix = "⟫"
disabled = false
ジョブ
jobs
モジュールには、実行中のジョブの現在の数が表示されます。このモジュールは、実行中のバックグラウンドジョブがある場合にのみ表示されます。1つ以上のジョブがある、またはthreshold
に指定した値以上にジョブがある場合は実行中のジョブの数を表示します。
オプション
変数 | デフォルト | 説明 |
---|---|---|
symbol |
"✦ " |
ジョブの数を表示する前に使用される記号です。 |
threshold |
1 |
超過した場合、ジョブの数を表示します。 |
style |
"bold blue" |
モジュールのスタイルです。 |
disabled |
false |
jobs モジュールを無効にします。 |
設定例
# ~/.config/starship.toml
[jobs]
symbol = "+ "
threshold = 4
改行
line_break
モジュールは、プロンプトを2行に分割します。
オプション
変数 | デフォルト | 説明 |
---|---|---|
disabled |
false |
line_break モジュールを無効にして、プロンプトを1行にします。 |
設定例
# ~/.config/starship.toml
[line_break]
disabled = true
Nix-shell
nix_shell
モジュールは、nix-shell環境を示しています。このモジュールは、nixシェル環境内にあるときに表示されます。
オプション
変数 | デフォルト | 説明 |
---|---|---|
use_name |
false |
nix-shellの名前を表示します。 |
impure_msg |
impure |
impureメッセージをカスタマイズします。 |
pure_msg |
pure |
pureメッセージをカスタマイズします。 |
style |
"bold red" |
モジュールのスタイルです。 |
disabled |
false |
nix_shell モジュールを無効にします。 |
設定例
# ~/.config/starship.toml
[nix_shell]
disabled = true
use_name = true
impure_msg = "impure shell"
pure_msg = "pure shell"
NodeJS
nodejs
モジュールは、現在インストールされているNodeJSのバージョンを示します。次の条件のいずれかが満たされると、モジュールが表示されます。
- カレントディレクトリに
package.json
ファイルが含まれている - カレントディレクトリに
node_modules
ディレクトリが含まれている - カレントディレクトリに
.js
の拡張子のファイルが含まれている
オプション
変数 | デフォルト | 説明 |
---|---|---|
symbol |
"⬢ " |
NodeJSのバージョンを表示する前に使用される記号です。 |
style |
"bold green" |
モジュールのスタイルです。 |
disabled |
false |
nodejs モジュールを無効にします。 |
設定例
# ~/.config/starship.toml
[nodejs]
symbol = "🤖 "
パッケージのバージョン
package
モジュールは、現在のディレクトリがパッケージのリポジトリである場合に表示され、現在のバージョンが表示されます。このモジュールは現在、 npm
、 cargo
、およびpoetry
パッケージをサポートしています。
- npm –
npm
パッケージバージョンは、現在のディレクトリにあるpackage.json
から抽出されます - cargo –
cargo
パッケージバージョンは、現在のディレクトリにあるCargo.toml
から抽出されます。 - poetry –
poetry
パッケージバージョンは、現在のディレクトリにあるpyproject.toml
から抽出されます
⚠️ 表示されるバージョンは、パッケージマネージャーではなく、ソースコードが現在のディレクトリにあるパッケージのバージョンです。
オプション
変数 | デフォルト | 説明 |
---|---|---|
symbol |
"📦 " |
パッケージのバージョンを表示する前に使用される記号です。 |
style |
"bold red" |
モジュールのスタイルです。 |
disabled |
false |
package モジュールを無効にします。 |
設定例
# ~/.config/starship.toml
[package]
symbol = "🎁 "
Python
python
モジュールは、現在インストールされているPythonのバージョンを示します。
pyenv_version_name
がtrue
に設定されている場合 、pyenvでのバージョン名が表示されます 。
それ以外の場合は、 python --version
バージョン番号が表示され、アクティブになっている場合は現在のPython仮想環境が表示されます。
次の条件のいずれかが満たされると、モジュールが表示されます。
- カレントディレクトリに
.python-version
ファイルが含まれている - カレントディレクトリに
requirements.txt
ファイルが含まれている - カレントディレクトリに
pyproject.toml
ファイルが含まれている - カレントディレクトリに
.py
の拡張子のファイルが含まれている - カレントディレクトリに
Pipfile
ファイルが含まれている
オプション
変数 | デフォルト | 説明 |
---|---|---|
symbol |
"🐍 " |
Pythonのバージョンを表示する前に使用される記号です。 |
pyenv_version_name |
false |
pyenvを使用してPythonバージョンを取得します |
pyenv_prefix |
"pyenv " |
pyenvバージョン表示の前のprefix(デフォルトの表示はpyenv MY_VERSION )です |
style |
"bold yellow" |
モジュールのスタイルです。 |
disabled |
false |
python モジュールを無効にします。 |
設定例
# ~/.config/starship.toml
[python]
symbol = "👾 "
pyenv_version_name = true
pyenv_prefix = "foo "
Ruby
ruby
モジュールは、現在インストールされているRubyのバージョンを示します。次の条件のいずれかが満たされると、モジュールが表示されます。
- カレントディレクトリに
Gemfile
ファイルが含まれている - カレントディレクトリに
.rb
の拡張子のファイルが含まれている
オプション
変数 | デフォルト | 説明 |
---|---|---|
symbol |
"💎 " |
Rubyのバージョンを表示する前に使用される記号です。 |
style |
"bold red" |
モジュールのスタイルです。 |
disabled |
false |
ruby モジュールを無効にします。 |
設定例
# ~/.config/starship.toml
[ruby]
symbol = "🔺 "
Rust
rust
モジュールには、現在インストールされているRustのバージョンが表示されます。次の条件のいずれかが満たされると、モジュールが表示されます。
- カレントディレクトリに
Cargo.toml
ファイルが含まれている - カレントディレクトリに
.rs
の拡張子のファイルが含まれている
オプション
変数 | デフォルト | 説明 |
---|---|---|
symbol |
"🦀 " |
Rustのバージョンを表示する前に使用される記号です。 |
style |
"bold red" |
モジュールのスタイルです。 |
disabled |
false |
rust モジュールを無効にします。 |
設定例
# ~/.config/starship.toml
[rust]
symbol = "⚙️ "
時刻
time
モジュールは、現在の現地時間を示します。 format
設定は、時間の表示方法を制御するためにchrono
クレートによって使用されます。使用可能なオプションを確認するには、chrono strftimeのドキュメントをご覧ください。
::: tip
このモジュールはデフォルトで無効になっています。有効にするには、設定ファイルでdisabled
をfalse
に設定します。
:::
オプション
変数 | デフォルト | 説明 |
---|---|---|
12hr |
false |
12時間のフォーマットを有効にします。 |
format |
この表の下を参照してください | 時刻のフォーマットに使用されるクロノフォーマット文字列 です。 |
style |
bold yellow |
モジュールのスタイルです。 |
disabled |
true |
time モジュールを無効にします。 |
12hr
がtrue
、 format
デフォルトで"%r"
です。それ以外の場合、デフォルトは"%T"
です。 format
を手動で設定すると、 12hr
の設定が上書きされます。
設定例
# ~/.config/starship.toml
[time]
disabled = false
format = "🕙[ %T ]"
ユーザ名
username
モジュールには、アクティブなユーザーのユーザー名が表示されます。次の条件のいずれかが満たされると、モジュールが表示されます。
- カレントユーザーがroot
- カレントユーザーが、ログインしているユーザーとは異なる
- ユーザーがSSHセッションとして接続されている
オプション
変数 | デフォルト | 説明 |
---|---|---|
style_root |
"bold red" |
ユーザーがrootのときに使用されるスタイルです。 |
style_user |
"bold yellow" |
非rootユーザーに使用されるスタイルです。 |
disabled |
false |
username モジュールを無効にします。 |
設定例
# ~/.config/starship.toml
[username]
disabled = true