Hoe u uw Linux-terminalprompt kunt aanpassen met Starship

Starship is een cross-shell prompt gebouwd met behulp van roesttaal. Dit is een zeer minimale en razendsnelle terminalprompt. De belangrijkste reden voor zijn populariteit is de aanpasbaarheid. U kunt het eenvoudig aanpassen met behulp van een TOML-configuratiebestand. Als je overstapt naar een ander apparaat of een andere shell, verplaats je het configuratiebestand gewoon naar de juiste locatie en automatisch is je mooi uitziende shell klaar.

Eerste vereiste

Voordat u Starship gebruikt, moet u een nerd-lettertype op uw computer installeren. Nerd-lettertype is een prachtige mix van lettertype en pictogrammen. Ga naar Nerd Fonts en download je favoriete. Als je er niet uit komt, kun je ook een voorbeeld van de lettertypen bekijken op programmingfonts.org.

In mijn geval hou ik van het “Fira Code Nerd-lettertype”. Download het lettertype en pak de inhoud erin uit. U krijgt een map met de naam “FiraCode” en alle .otf- en .ttf-versies van het lettertype.

Om dit lettertype te installeren, gaat u naar uw terminal en voert u de volgende opdracht uit.

# Creating the local font directory in your system
mkdir ~/.local/share/fonts
 
# Moving the extracted fonts to local font directory
mv FiraCode ~/.local/share/fonts/

Nu is het FiraCode Nerd-lettertype beschikbaar in uw systeem. U kunt ook andere verschillende typen lettertypen installeren door de bovenstaande handleiding te volgen.

Als je graag een uitgebreide handleiding leest over het installeren van lettertypen op een Linux-desktop, bekijk dan dit artikel over het installeren van lettertypen in Ubuntu.

Installeer ruimteschip

Om starship te installeren, gaat u naar uw homedirectory en voert u de volgende opdracht uit.

curl -sS https://starship.rs/install.sh | sh

Deze opdracht zal starship binary downloaden en installeren en aan je pad toevoegen.

Installeer Starship op uw Shell

Als u een bash-shell gebruikt, opent u uw “~/.bashrc” -bestand en plakt u deze regel code aan het einde.

eval "$(starship init bash)"

Als je Zsh gebruikt, open dan in plaats daarvan je “~/.zshrc”-bestand en plak de bovenstaande regel code aan het einde ervan.

Start nu uw terminal-app opnieuw. Je wordt begroet door de standaard prompt van het ruimteschip.

Sterrenschip Demo 1

Als je een andere shell hebt in plaats van de bovenstaande twee, ga dan naar de documentatie van het ruimteschip en vind daar je favoriete shell.

Ruimteschip aanpassen

Om uw shell-prompt aan te passen, maakt u een “starship.toml” -bestand in uw configuratiemap.

# Creating your .config directory if not existed
mkdir -p ~/.config
 
# Creating a new starship.toml file
touch ~/.config/starship.toml

U kunt ook de standaardlocatie van het configuratiebestand van het ruimteschip wijzigen. Om de standaardlocatie van uw ruimteschipconfiguratiebestand te wijzigen, voegt u de STARSHIP_CONFIG omgevingsvariabele onderaan uw “~/.bashrc” -bestand.

export STARSHIP_CONFIG=~/example/non/default/path/starship.toml

Concept van module en variabele

Een module is een component in de terminalprompt, die u contextuele informatie geeft over het onderliggende besturingssysteem. Nodejs is bijvoorbeeld een module in de prompt van het ruimteschip. Wanneer we deze module toevoegen aan het configuratiebestand, geeft het ons verschillende datapunten met betrekking tot de huidige installatie van Nodejs in uw omgeving.

De module geeft die informatie in termen van variabelen. Variabelen zijn kleinere subcomponenten die informatie over de module bevatten. Bijvoorbeeld, version is de variabele van “Nodejs”. Wanneer we de bellen $version In de Nodejs-module geeft het ons de momenteel geïnstalleerde versie van Nodejs in uw systeem. Variabelen worden voorafgegaan door $ symbool. De naam van een variabele mag alleen letters, cijfers en “_” bevatten.

Tekstgroepen en stijlen

Tekstgroepen in ruimteschip bestaan ​​uit 2 delen. Het eerste deel is ingesloten onder de [ ] symbool. Dit deel wordt format string genoemd. We kunnen hier teksten, variabelen en zelfs geneste tekstgroepen toevoegen.

Het laatste deel is ingesloten onder ( ) en dit wordt stijlstring genoemd. U kunt de tekstgroep opmaken met deze stijltekenreeks.

Laten we een voorbeeld nemen.

  • [make_tech_easier](yellow bold) zal de string “make_tech_easier” afdrukken met vetgedrukte tekst en gele kleur.
  • [👍 All Done](green) zal “👍 All Done” in groene kleur afdrukken.
  • [a [b](green) c](red) Dit is een voorbeeld van geneste tekstgroepen. Het drukt af a en c in rood en b in het groen.

Nog wat stijlinstellingen

  • We kunnen verschillende voorgronden en achtergronden instellen voor de tekstgroepen. [ ](fg:red bg:blue) maak tekst lettertype kleur rood en achtergrond blauw.
  • We kunnen ook ANSI-kleuren gebruiken in het configuratiebestand. [ ](bold fg:27) vette tekst weergeven met ANSI 27-kleur als voorgrondkleur.
  • Als u uw hex kleur wilt toevoegen, dan is dit ook mogelijk. [ ](underline bg:#bf5700) geeft een onderstreepte tekst met een feloranje achtergrondkleur.
Sterrenschip Demo 2

Snelle aanpassing in ruimteschip

De snelle aanpassing van het ruimteschip heeft 4 opties. We kunnen deze 4 opties wijzigen om de promptstijl aan te passen.

  • formaat: Het definieert hoe de prompt eruit zou zien in de terminal. U kunt elk ontwerp als prompt definiëren.
  • scan_timeout: Time-out voor een ruimteschip om bestanden te scannen.
  • command_timeout: Time-out voor commando uitgevoerd door ruimteschip.
  • add_newline: Het is een boolean. Indien ingesteld op waar, wordt een lege regel toegevoegd tussen de shell-prompt.

Een aanpassingsbestand voor een demo-prompt ziet er als volgt uit.

# Use custom format
format = """
[┌───────────────────>](bold green)
[│](bold green)$directory$rust$package
[└─>](bold green) """
 
# Wait 10 milliseconds for starship to check files under the current directory.
scan_timeout = 10
 
# Disable the blank line at the start of the prompt
add_newline = false

Voeg uw gewenste module toe

Nu je de basis van het ruimteschip kent en hoe je het kunt aanpassen, kun je heel eenvoudig de gewenste module toevoegen. Houd er rekening mee dat elke module zal werken als de bestanden en mappen met betrekking tot deze module zich op het opgegeven pad bevinden. Simpel gezegd, de python-module is alleen zichtbaar als er een python-bestand aanwezig is in de huidige werkmap.

Laten we de python-module als demo toevoegen aan onze ruimteschipconfiguratie. open je starship.toml-bestand. daar voeg ik toe [python] in een nieuwe regel om de python-omgeving te activeren.

Python-module toont de informatie over python-installatie in uw besturingssysteem of als een virtuele omgeving is geactiveerd. Als u het python-pictogram wilt wijzigen en de virtualenv-naam wilt weergeven, ziet het configuratiebestand er als volgt uit.

[python]
symbol = "🐍 "
pyenv_version_name = true

Als je zowel python2 als python3 hebt geïnstalleerd, kun je het standaard python-binaire bestand specificeren met behulp van het configuratiebestand van het sterrenschip.

[python]
# Only use the `python3` binary to get the version.
python_binary = "python3"

Net als dit voorbeeld kunt u elke gewenste module toevoegen en deze naar uw eigen fantasie aanpassen.

Voorinstellingen voor ruimteschepen toevoegen

Als u al die aanpassingen niet zelf wilt doen, maar een goed uitziende terminal-prompt uit de doos wilt, kunt u presets gebruiken. Voorinstellingen zijn eenvoudig configuratiebestanden van ruimteschepen die door andere gebruikers worden gedeeld. Je kunt die presets in je configuratiebestand importeren en je hebt in een oogwenk een mooie terminalprompt.

Starship Prompt Powerline 700px

U kunt de officiële voorinstellingen op deze pagina verkennen. De bovenstaande terminalprompt is geüpload door een gebruiker en beschikbaar op de pagina met voorinstellingen. Om uw terminalprompt er nu zo uit te laten zien, opent u het configuratiebestand van uw ruimteschip en voegt u deze configuratie toe aan uw bestand.

format = """
[←](#9A348E)
$username
[→](bg:#DA627D fg:#9A348E)
$directory
[→](fg:#DA627D bg:#FCA17D)
$git_branch
$git_status
[→](fg:#FCA17D bg:#86BBD8)
$c
$elixir
$elm
$golang
$haskell
$java
$julia
$nodejs
$nim
$rust
[→](fg:#86BBD8 bg:#06969A)
$docker_context
[→](fg:#06969A bg:#33658A)
$time
[→ ](fg:#33658A)
"""
 
# Disable the blank line at the start of the prompt
# add_newline = false
 
# You can also replace your username with a neat symbol like  to save some space
[username]
show_always = true
style_user = "bg:#9A348E"
style_root = "bg:#9A348E"
format = '[$user ]($style)'
 
[directory]
style = "bg:#DA627D"
format = "[ $path ]($style)"
truncation_length = 3
truncation_symbol = "…/"
 
# Here is how you can shorten some long paths by text replacement
# similar to mapped_locations in Oh My Posh:
[directory.substitutions]
"Documents" = "📄 "
"Downloads" = "📥 "
"Music" = "🎜 "
"Pictures" = "📷 "
# Keep in mind that the order matters. For example:
# "Important Documents" = "  "
# will not be replaced, because "Documents" was already substituted before.
# So either put "Important Documents" before "Documents" or use the substituted version:
# "Important  " = "  "
 
[c]
symbol = "© "
style = "bg:#86BBD8"
format = '[[ $symbol ($version) ](bg:#86BBD8)]($style)'
 
[docker_context]
symbol = "🐳 "
style = "bg:#06969A"
format = '[[ $symbol $context ](bg:#06969A)]($style) $path'
 
[elixir]
symbol = "💧 "
style = "bg:#86BBD8"
format = '[[ $symbol ($version) ](bg:#86BBD8)]($style)'
 
[elm]
symbol = "🌳 "
style = "bg:#86BBD8"
format = '[[ $symbol ($version) ](bg:#86BBD8)]($style)'
 
[git_branch]
symbol = "☊"
style = "bg:#FCA17D"
format = '[[ $symbol $branch ](bg:#FCA17D)]($style)'
 
[git_status]
style = "bg:#FCA17D"
format = '[[($all_status$ahead_behind )](bg:#FCA17D)]($style)'
 
[golang]
symbol = "🐹 "
style = "bg:#86BBD8"
format = '[[ $symbol ($version) ](bg:#86BBD8)]($style)'
 
[haskell]
symbol = "λ "
style = "bg:#86BBD8"
format = '[[ $symbol ($version) ](bg:#86BBD8)]($style)'
 
[java]
symbol = "☕ "
style = "bg:#86BBD8"
format = '[[ $symbol ($version) ](bg:#86BBD8)]($style)'
 
[julia]
symbol = "ஃ "
style = "bg:#86BBD8"
format = '[[ $symbol ($version) ](bg:#86BBD8)]($style)'
 
[nodejs]
symbol = "🔷 "
style = "bg:#86BBD8"
format = '[[ $symbol ($version) ](bg:#86BBD8)]($style)'
 
[nim]
symbol = "👑 "
style = "bg:#86BBD8"
format = '[[ $symbol ($version) ](bg:#86BBD8)]($style)'
 
[rust]
symbol = "🦀"
style = "bg:#86BBD8"
format = '[[ $symbol ($version) ](bg:#86BBD8)]($style)'
 
[time]
disabled = false
time_format = "%R" # Hour:Minute Format
style = "bg:#33658A"
format = '[[ 🤍 $time ](bg:#33658A)]($style)'

Start uw terminal opnieuw op en uw terminalprompt ziet er precies zo uit als de prompt in de afbeelding. U kunt zoeken naar meer voorinstellingen voor terminalprompts en proberen welke het beste bij u past. Als je in de tussentijd wat bash-tips en -trucs wilt uitproberen, zou dit artikel het meest geschikt voor je moeten zijn.

Hoe sterrenschip te verwijderen?

Om starship te verwijderen, verwijder je eerst je starship-configuratiebestand.

rm ~/.config/starship.toml

Verwijder vervolgens de regel die u tijdens de installatie hebt geplakt in het bestand “~/.bashrc”.

Verwijder ten slotte het binaire ruimteschip van uw apparaat.

sh -c 'rm "$(command -v 'starship')"'

Start nu uw terminal opnieuw en uw prompt is hersteld naar de standaardstijl.

Veel Gestelde Vragen

Hoe pas ik mijn huidige terminalpromptstijl toe op een ander apparaat?

Het is heel makkelijk. Kopieer gewoon uw ruimteschipconfiguratiebestand in uw ~/.config/starship.toml naar het andere apparaat. Installeer ruimteschip, herstart de terminal en je bent klaar.

Wat zijn de alternatieven voor een ruimteschip?

Er zijn veel alternatieven voor ruimteschepen die je online kunt vinden. Voor zsh shell is oh-my-zsh een erg populair hulpprogramma. Evenzo is oh-my-fish voor visschelpen ook een bekend hulpmiddel dat mensen gebruiken om hun shell-prompt aan te passen. Een andere is ruimteschip. dit is een aanpasbare zsh-prompt. Enkele andere populaire opties zijn pure en synth-shell.

Is dit artikel nuttig?

Abonneer op onze nieuwsbrief!

Onze nieuwste tutorials rechtstreeks in je inbox

Leave a Comment