Starship: Най-добрият терминален промпт за съвременния програмист

Starship: Най-добрият терминален промпт за съвременния програмист

Ако прекарвате голяма част от деня си в терминала, знаете, че информацията е всичко. Стандартните промптове (командните редове) често са бедни на информация или прекалено тромави. Тук се намесва Starship – минималистичен, светкавично бърз и безкрайно персонализируем промпт, написан на Rust.

Какво е Starship?

Starship е „обвивка“ (prompt) за вашия шел (shell), която работи с почти всичко: Bash, Zsh, Fish, PowerShell и дори нови платформи като Nushell. Той е проектиран да бъде:

  • Интелигентен: Показва информация само когато е нужна (например версия на Python, само ако сте в папка с .py файлове).
  • Бърз: Благодарение на Rust, Starship е оптимизиран за мигновена реакция.
  • Красив: Поддържа икони, цветове и различни стилове.

Как да инсталираме Starship?

Процесът е изключително лесен и зависи от вашата операционна система:

1. Инсталация на софтуера

  • macOS (чрез Homebrew):Bashbrew install starship
  • Linux (чрез скрипт):Bashcurl -sS https://starship.rs/install.sh | sh
  • Windows (чрез Winget):PowerShellwinget install starship

2. Активиране в шела

След като софтуерът е инсталиран, трябва да кажете на вашия терминал да го използва при всяко стартиране. Добавете следния ред в края на конфигурационния файл на вашия шел:

  • За Zsh (~/.zshrc): eval "$(starship init zsh)"
  • За Bash (~/.bashrc): eval "$(starship init bash)"
  • За PowerShell (профилът ви): Invoke-Expression (&starship init powershell)

Важно: За да виждате иконите правилно, трябва да инсталиратеNerd Font(например FiraCode Nerd Font) и да го зададете като основен шрифт в настройките на вашия терминален емулатор.


Конфигурация: Пътят към съвършенството

Силата на Starship е в неговия конфигурационен файл. По подразбиране Starship търси настройки в директорията ~/.config.

Създаване на директорията и файла

Ако все още нямате такава папка, изпълнете следните команди:

# Създава папката .config (ако не съществува)
mkdir -p ~/.config

# Създава самия конфигурационен файл
touch ~/.config/starship.toml

Пример за конфигурационен файл (starship.toml)

Отворете файла с любимия си текстов редактор (VS Code, Nano, Vim) и добавете нещо подобно. Това е базов, но изключително функционален стил:

# Форматът на целия промпт
format = """
$directory\
$git_branch\
$git_status\
$nodejs\
$python\
$rust\
$character
"""

# Настройка на символа за въвеждане
[character]
success_symbol = "[➜](bold green)"
error_symbol = "[➜](bold red)"

# Настройка на директорията
[directory]
style = "bold cyan"
truncation_length = 3
truncation_symbol = "…/"

# Информация за Git бранша
[git_branch]
symbol = " "
style = "bold purple"

# Информация за Node.js
[nodejs]
symbol = " "
style = "bold green"

Как се използва?

Най-хубавото на Starship е, че не трябва да правите нищо специално. След като е инсталиран и конфигуриран, той автоматично ще променя външния си вид спрямо контекста:

  1. Ако влезете в папка с Git хранилище, веднага ще видите текущия бранш и дали имате незапазени промени.
  2. Ако влезете в проект на Node.js, ще видите иконата на Node и версията, която използвате в момента.
  3. Ако последната команда е завършила с грешка, стрелката на промпта ще стане червена.

🚀 Професионална конфигурация: Пълна прозрачност и стил

Ако искате терминалът ви да изглежда като този на опитен системен администратор или програмист, ето една усъвършенствана конфигурация. Тя използва двуредов формат за по-добра четимост и включва мониторинг на ресурсите.

Какво прави тази конфигурация специална?

  • Двуредов изглед: Първият ред е за информация, а вторият е чистото пространство, където пишете командите си.
  • Интелигентни символи: Използва икони за домашната директория (🏠), Python (🐍) и Node.js (⬢).
  • Хардуерен мониторинг: Показва заетостта на паметта, когато тя надхвърли 50%.
  • Пълна идентификация: Показва потребителското име и хоста, което е критично при работа с SSH.

Пълният код за ~/.config/starship.toml

Можете директно да копирате и поставите този код във вашия конфигурационен файл:

# ============================================
# ЗВЕЗДЕН КОРАБ (STARSHIP) КОНФИГУРАЦИЯ
# Файл: ~/.config/starship.toml
# От Федя Серафиев
# ============================================

# Основен формат на промпта
format = """
[╭─](bold green)$username$hostname$directory$git_branch$git_status$python$nodejs$docker_context$memory_usage$time
[╰─](bold green)$cmd_duration$character"""

# ========= СИМВОЛИ =========
[character]
success_symbol = "[➜](bold green)"
error_symbol = "[✗](bold red)"
vicmd_symbol = "[V](bold purple)"

# ========= ДИРЕКТОРИЯ =========
[directory]
truncation_length = 3
truncate_to_repo = true
home_symbol = "🏠 "
format = "[$path]($style)"
style = "bold blue"
read_only = " סּ"
read_only_style = "red"

# ========= GIT КЛОН =========
[git_branch]
symbol = " "
format = "[$symbol$branch]($style)"
style = "bold yellow"

# ========= GIT СТАТУС =========
[git_status]
format = '([\[$all_status$ahead_behind\]](red))'
disabled = false

# ========= ПОТРЕБИТЕЛ =========
[username]
format = "[$user]($style)@"
style_user = "bold cyan"
style_root = "bold red"
show_always = true

# ========= ХОСТ =========
[hostname]
format = "[$hostname]($style):"
ssh_symbol = "🌐 "
ssh_only = false
style = "bold purple"

# ========= ПАМЕТ =========
[memory_usage]
disabled = false
threshold = 50
format = "[🖥 $percentage%]($style) "
style = "bold dimmed white"

# ========= PYTHON =========
[python]
format = "[🐍 $version](bold yellow) "
pyenv_version_name = true
pyenv_prefix = "venv "

# ========= NODE.JS =========
[nodejs]
format = "[⬢ $version](bold green) "

# ========= DOCKER =========
[docker_context]
symbol = "🐳 "
format = "[$symbol$context]($style)"
style = "bold cyan"
only_with_files = true

💡 Бонус съвет: Състояние на батерията (за лаптоп)

Ако работите на лаптоп и често сте в движение, можете да добавите и модула за батерията. Той е програмиран да се появява само когато батерията падне под определен процент.

[battery]
full_symbol = "🔋 "
charging_symbol = "⚡ "
discharging_symbol = "🪫 "
format = "[$symbol$percentage]($style) "

[[battery.display]]
threshold = 15 # Показва се само под 15%
style = "bold red"

[[battery.display]]
threshold = 30 # Показва се в жълто под 30%
style = "bold yellow"

⭐ Основни Starship команди

🔹 Проверка на версията

starship --version

🔹 Помощ и налични команди

starship --help

🔹 Проверка дали Starship е активен

echo $STARSHIP_SHELL

🔹 Генериране на default конфигурация

starship print-config

Полезно за:

  • преглед на всички модули
  • база за собствен starship.toml

🔹 Обяснение на текущия prompt (много полезно)

starship explain

Показва:

  • кои модули се визуализират
  • защо са активни
  • в какъв ред

🔹 Валидиране на конфигурацията

starship check

Хваща:

  • синтактични грешки
  • невалидни модули
  • грешни ключове в TOML

🔹 Тестване с временна конфигурация

STARSHIP_CONFIG=/path/to/test.toml starship explain

Идеално за експерименти без да чупиш основния конфиг.


🛠 Управление през shell

🔹 Активиране в bash

eval "$(starship init bash)"

🔹 Временно деактивиране (текуща сесия)

STARSHIP_DISABLE=1 bash

🔹 Пълно изключване

(коментираш в ~/.bashrc)

# eval "$(starship init bash)"

🧪 Debug / диагностика

🔹 Проверка кой конфиг се използва

echo $STARSHIP_CONFIG

(ако е празно → ~/.config/starship.toml)


🔹 Benchmark / време за изпълнение

starship timings

Много полезно, ако prompt-ът стане тежък.


🧩 Работа с модули (най-често)

Няма CLI команди за enable/disable — това става в TOML:

[module_name]
disabled = true

Пример:

[memory_usage]
disabled = true

📌 Най-ползваният „реален“ сет (обобщение)

starship --version
starship explain
starship print-config
starship check
starship timings

Това са 90% от ежедневната употреба.

Федя Серафиев

Федя Серафиев

е DevOps технологичен ентусиаст с опит в Linux, Docker, Kubernetes и CI/CD. Той споделя практични ръководства и анализи, които помагат на специалистите да изграждат по-добри и ефективни системи. На devopsbg.net Федя предоставя актуални и полезни насоки за автоматизация, сигурност и оптимизация на инфраструктурата.

Вашият коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *


Колко е 9 - 5 ? (въведете числото)