2019-10-21 14:42:08 +00:00
# Erweiterte Konfiguration
2019-10-04 08:57:43 +00:00
2019-10-21 14:42:08 +00:00
Auch wenn Starship eine vielseitige Shell ist, reichen manche Konfigurationen in der `starship.toml` nicht aus, um erweiterte Einstellungen vorzunehmen. Diese Seite beschreibt einige fortgeschrittene Konfigurationen für Starship.
2019-10-04 08:57:43 +00:00
2019-10-21 14:42:08 +00:00
::: Warnung
2019-10-04 08:57:43 +00:00
2019-10-21 14:42:08 +00:00
Die hier beschriebenen Konfigurationen werden sich mit kommenden Updates von Starship verändern.
2019-10-04 08:57:43 +00:00
:::
2019-10-21 14:42:08 +00:00
## Benutzerdefinierte Pre-Prompt- und Pre-Execution-Befehle in der Bash
2019-10-04 08:57:43 +00:00
2019-10-21 14:42:08 +00:00
Die Bash Shell hat, im Gegensatz zu vielen anderen Shells, kein konventionelles preexec/precmd Framework. Daher gestaltet es sich schwierig, vollständig anpassbare Hooks für `bash` anzubieten. Starship bietet daher die begrenzte Möglichkeit, eigene Funktionen in das prompt rendering Verfahren einzufügen:
2019-10-04 08:57:43 +00:00
2019-10-21 14:42:08 +00:00
- Um eine benutzerdefinierte Funktion kurz vor Anzeige der Eingabeaufforderung auszuführen, definiere eine neue Funktion und weise den Namen `starship_precmd_user_func` zu. Um beispielsweise eine Rakete anzuzeigen, bevor die Eingabeaufforderung erscheint, würde man folgendes tun
2019-10-04 08:57:43 +00:00
```bash
function blastoff(){
echo "🚀"
}
starship_precmd_user_func="blastoff"
```
2019-10-21 14:42:08 +00:00
- Um eine benutzerdefinierte Funktion direkt vor der Ausführung eines Befehls auszulösen, kann man den [`DEBUG` trap ](https://jichu4n.com/posts/debug-trap-and-prompt_command-in-bash/ ) Mechanismus verwenden. Allerdings **muss** das DEBUG Signal *vor* der Initialisierung von Starship getrapped werden! Starship kann den Wert der DEBUG-trap speichern. Wenn der Wert der DEBUG-trap überschrieben wird nachdem Starship gestartet ist kann es zu Fehlern im Bezug auf die verwendete DEBUG-trap kommen.
2019-10-04 08:57:43 +00:00
```bash
function blastoff(){
echo "🚀"
}
2019-10-21 14:42:08 +00:00
trap blastoff DEBUG # DEBUG-Trap *bevor* Starship läuft
2019-10-04 08:57:43 +00:00
eval $(starship init bash)
```
2019-10-21 14:42:08 +00:00
## Fenstertitel anpassen
2019-10-04 08:57:43 +00:00
2019-10-21 14:42:08 +00:00
Manche shell prompts können den Fenstertitel ändern. Fish ist standardmäßig so konfiguriert. Starship ändert standardmäßig den Fenstertitel nicht, aber es ist sehr einfach die Funktion zu `bash` oder `zsh` hinzuzufügen.
2019-10-04 08:57:43 +00:00
2019-10-21 14:42:08 +00:00
Zuerst wird eine Funktion definiert um den Fenstertitel zu ändern ( für bash und zsh ist die Funktion identisch):
2019-10-04 08:57:43 +00:00
```bash
function set_win_title(){
2019-10-21 14:42:08 +00:00
echo -ne "\033]0; DEIN_FENSTERTITEL_HIER \007"
2019-10-04 08:57:43 +00:00
}
```
2019-10-21 14:42:08 +00:00
Sie können Variablen verwenden, um diesen Titel anzupassen (`$USER`, `$HOSTNAME` , `$PWD` ).
2019-10-04 08:57:43 +00:00
2019-10-21 14:42:08 +00:00
Für `bash` muss die Funktion als "precmd starship"-Funktion gesetzt werden:
2019-10-04 08:57:43 +00:00
```bash
starship_precmd_user_func="set_win_title"
```
2019-10-21 14:42:08 +00:00
Füge dies in `Zsh` zum `precmd_functions` -Array hinzu:
2019-10-04 08:57:43 +00:00
```bash
precmd_functions+=(set_win_title)
```
2021-04-08 15:52:32 +00:00
Wenn Sie das Resultat für gut empfinden, fügen Sie diese Zeilen zu ihrer Shell Konfigurationsdatei hinzu (`~/.bashrc` oder `~/.zshrc` ) um das Ergebnis permanent zu machen.
2020-07-23 21:07:10 +00:00
2021-04-08 15:52:32 +00:00
Zum Beispiel, wenn sie ihr aktuelles Verzeichnis als Terminal Title anzeigen wollen, fügen Sie folgenden Code-Schnipsel zu ihrer `~/.bashrc` oder `~/.zshrc` hinzu:
2020-07-23 21:07:10 +00:00
```bash
function set_win_title(){
docs(i18n): New Crowdin updates (#2469)
* New translations README.md (Dutch)
* New translations README.md (Polish)
* New translations README.md (Portuguese)
* New translations README.md (Russian)
* New translations README.md (Turkish)
* New translations README.md (Chinese Simplified)
* New translations README.md (Chinese Traditional)
* New translations README.md (Vietnamese)
* New translations README.md (Portuguese, Brazilian)
* New translations README.md (Sorani (Kurdish))
* New translations README.md (Turkish)
* New translations README.md (Russian)
* New translations README.md (Portuguese)
* New translations README.md (Polish)
* New translations README.md (Dutch)
* New translations README.md (Japanese)
* New translations README.md (Italian)
* New translations README.md (German)
* New translations README.md (Chinese Simplified)
* New translations README.md (Chinese Traditional)
* New translations README.md (Sorani (Kurdish))
* New translations README.md (Portuguese, Brazilian)
* New translations README.md (Vietnamese)
* New translations README.md (Polish)
* New translations README.md (Dutch)
* New translations README.md (Korean)
* New translations README.md (Japanese)
* New translations README.md (Italian)
* New translations README.md (German)
* New translations README.md (Arabic)
* New translations README.md (Spanish)
* New translations README.md (French)
* New translations README.md (Portuguese)
* New translations README.md (Arabic)
* New translations README.md (Spanish)
* New translations README.md (French)
* New translations README.md (Korean)
* New translations README.md (Sorani (Kurdish))
* New translations README.md (Portuguese, Brazilian)
* New translations README.md (Russian)
* New translations README.md (Vietnamese)
* New translations README.md (Chinese Traditional)
* New translations README.md (Chinese Simplified)
* New translations README.md (Turkish)
* New translations README.md (French)
* New translations README.md (German)
* New translations README.md (Japanese)
* New translations README.md (Italian)
* New translations README.md (Arabic)
* New translations README.md (Spanish)
* New translations README.md (French)
* New translations README.md (Dutch)
* New translations README.md (Korean)
* New translations README.md (Russian)
* New translations README.md (Portuguese)
* New translations README.md (Polish)
* New translations README.md (Portuguese)
* New translations README.md (Polish)
* New translations README.md (Dutch)
* New translations README.md (Korean)
* New translations README.md (Japanese)
* New translations README.md (Russian)
* New translations README.md (Arabic)
* New translations README.md (Turkish)
* New translations README.md (Spanish)
* New translations README.md (German)
* New translations README.md (Italian)
* New translations README.md (Sorani (Kurdish))
* New translations README.md (Portuguese, Brazilian)
* New translations README.md (Vietnamese)
* New translations README.md (Sorani (Kurdish))
* New translations README.md (Portuguese, Brazilian)
* New translations README.md (Vietnamese)
* New translations README.md (Chinese Traditional)
* New translations README.md (Chinese Traditional)
* New translations README.md (Chinese Simplified)
* New translations README.md (Turkish)
* New translations README.md (Chinese Simplified)
* New translations README.md (Polish)
* New translations README.md (Dutch)
* New translations README.md (Japanese)
* New translations README.md (Italian)
* New translations README.md (German)
* New translations README.md (Portuguese)
* New translations README.md (Sorani (Kurdish))
* New translations README.md (Portuguese, Brazilian)
* New translations README.md (Vietnamese)
* New translations README.md (Chinese Traditional)
* New translations README.md (Russian)
* New translations README.md (Chinese Simplified)
* New translations README.md (Turkish)
* New translations README.md (Arabic)
* New translations README.md (Spanish)
* New translations README.md (French)
* New translations README.md (Korean)
* New translations README.md (German)
* New translations README.md (Polish)
* New translations README.md (Dutch)
* New translations README.md (Japanese)
* New translations README.md (Italian)
* New translations README.md (German)
* New translations README.md (Portuguese)
* New translations README.md (Sorani (Kurdish))
* New translations README.md (Portuguese, Brazilian)
* New translations README.md (Vietnamese)
* New translations README.md (Chinese Traditional)
* New translations README.md (Russian)
* New translations README.md (Chinese Simplified)
* New translations README.md (Turkish)
* New translations README.md (Arabic)
* New translations README.md (Spanish)
* New translations README.md (French)
* New translations README.md (Korean)
* New translations README.md (French)
* New translations README.md (Spanish)
* New translations README.md (Arabic)
* New translations README.md (German)
* New translations README.md (Italian)
* New translations README.md (Japanese)
* New translations README.md (Korean)
* New translations README.md (Dutch)
* New translations README.md (Polish)
* New translations README.md (Sorani (Kurdish))
* New translations README.md (Portuguese, Brazilian)
* New translations README.md (Vietnamese)
* New translations README.md (Chinese Traditional)
* New translations README.md (Chinese Simplified)
* New translations README.md (Turkish)
* New translations README.md (Russian)
* New translations README.md (Portuguese)
* New translations README.md (Polish)
* New translations README.md (Dutch)
* New translations README.md (Japanese)
* New translations README.md (Italian)
* New translations README.md (German)
* New translations README.md (Portuguese)
* New translations README.md (Sorani (Kurdish))
* New translations README.md (Portuguese, Brazilian)
* New translations README.md (Vietnamese)
* New translations README.md (Chinese Traditional)
* New translations README.md (Russian)
* New translations README.md (Chinese Simplified)
* New translations README.md (Turkish)
* New translations README.md (Arabic)
* New translations README.md (Spanish)
* New translations README.md (French)
* New translations README.md (Korean)
* New translations README.md (Spanish)
* New translations README.md (French)
* New translations README.md (Arabic)
* New translations README.md (Portuguese, Brazilian)
* New translations README.md (Vietnamese)
* New translations README.md (Chinese Traditional)
* New translations README.md (Chinese Simplified)
* New translations README.md (Turkish)
* New translations README.md (Russian)
* New translations README.md (Portuguese)
* New translations README.md (Polish)
* New translations README.md (Dutch)
* New translations README.md (Korean)
* New translations README.md (Italian)
* New translations README.md (German)
* New translations README.md (French)
* New translations README.md (Japanese)
* New translations README.md (Spanish)
* New translations README.md (French)
* New translations README.md (Japanese)
* New translations README.md (Portuguese)
* New translations README.md (Portuguese)
* New translations README.md (Polish)
* New translations README.md (Polish)
* New translations README.md (Dutch)
* New translations README.md (Dutch)
* New translations README.md (Korean)
* New translations README.md (Korean)
* New translations README.md (Japanese)
* New translations README.md (Russian)
* New translations README.md (Italian)
* New translations README.md (Italian)
* New translations README.md (German)
* New translations README.md (German)
* New translations README.md (Arabic)
* New translations README.md (Spanish)
* New translations README.md (Spanish)
* New translations README.md (Russian)
* New translations README.md (Portuguese, Brazilian)
* New translations README.md (Arabic)
* New translations README.md (Sorani (Kurdish))
* New translations README.md (Sorani (Kurdish))
* New translations README.md (Portuguese, Brazilian)
* New translations README.md (Vietnamese)
* New translations README.md (Vietnamese)
* New translations README.md (Chinese Traditional)
* New translations README.md (Chinese Traditional)
* New translations README.md (Chinese Simplified)
* New translations README.md (Chinese Simplified)
* New translations README.md (Turkish)
* New translations README.md (Turkish)
* New translations README.md (Sorani (Kurdish))
* New translations README.md (Japanese)
* New translations README.md (Korean)
* New translations README.md (Dutch)
* New translations README.md (Polish)
* New translations README.md (Portuguese)
* New translations README.md (Russian)
* New translations README.md (Turkish)
* New translations README.md (Italian)
* New translations README.md (Chinese Simplified)
* New translations README.md (Chinese Traditional)
* New translations README.md (Vietnamese)
* New translations README.md (Portuguese, Brazilian)
* New translations README.md (Sorani (Kurdish))
* New translations README.md (German)
* New translations README.md (French)
* New translations README.md (Spanish)
* New translations README.md (Arabic)
* New translations README.md (German)
* New translations README.md (Arabic)
* New translations README.md (Spanish)
* New translations README.md (French)
* New translations README.md (Portuguese)
* New translations README.md (Polish)
* New translations README.md (Dutch)
* New translations README.md (Russian)
* New translations README.md (Vietnamese)
* New translations README.md (Sorani (Kurdish))
* New translations README.md (Portuguese, Brazilian)
* New translations README.md (Turkish)
* New translations README.md (Chinese Traditional)
* New translations README.md (Chinese Simplified)
* New translations README.md (Korean)
* New translations README.md (Italian)
* New translations README.md (Japanese)
* New translations README.md (Polish)
* New translations README.md (Dutch)
* New translations README.md (Japanese)
* New translations README.md (Italian)
* New translations README.md (German)
* New translations README.md (Portuguese)
* New translations README.md (Sorani (Kurdish))
* New translations README.md (Portuguese, Brazilian)
* New translations README.md (Vietnamese)
* New translations README.md (Chinese Traditional)
* New translations README.md (Russian)
* New translations README.md (Chinese Simplified)
* New translations README.md (Turkish)
* New translations README.md (Arabic)
* New translations README.md (Spanish)
* New translations README.md (French)
* New translations README.md (Korean)
2021-04-05 14:55:57 +00:00
echo -ne "\033]0; $(basename "$PWD") \007"
2020-07-23 21:07:10 +00:00
}
starship_precmd_user_func="set_win_title"
```
2019-10-04 08:57:43 +00:00
2019-10-21 14:42:08 +00:00
## Style-Strings
2019-10-04 08:57:43 +00:00
2019-12-14 23:46:45 +00:00
Style-String sind Wortlisten, getrennt durch Leerzeichen. Die Wörter haben keine Groß- und Kleinschreibung (z.B. `bold` und `BoLd` werden als dieselbe Zeichenkette betrachtet). Jedes Wort kann eines der folgenden sein:
2019-10-04 08:57:43 +00:00
- `bold`
- `underline`
- `dimmed`
- `bg:<color>`
- `fg:<color>`
- `<color>`
- `none`
2019-12-14 23:46:45 +00:00
wobei `<color>` eine Farbspezifikation ist (siehe unten). `fg:<color>` und `<color>` tun derzeit dasselbe , das kann sich in Zukunft aber ändern. Die Reihenfolge der Wörter in der Liste spielt keine Rolle.
2019-10-04 08:57:43 +00:00
2021-01-07 23:08:18 +00:00
The `none` token overrides all other tokens in a string if it is not part of a `bg:` specifier, so that e.g. `fg:red none fg:blue` will still create a string with no styling. `bg:none` sets the background to the default color so `fg:red bg:none` is equivalent to `red` or `fg:red` and `bg:green fg:red bg:none` is also equivalent to `fg:red` or `red` . In der Zukunft könnte die Unterstützung von `none` in Verbindung mit anderen Tokens fallen gelassen werden.
2019-10-04 08:57:43 +00:00
2019-12-14 23:46:45 +00:00
Eine Farbspezifikation kann wie folgt aussehen:
2019-10-04 08:57:43 +00:00
2019-12-14 23:46:45 +00:00
- Einer der Standardfarben der Konsole: `black` , `red` , `green` , `blue` , `yellow` , `purple` , `cyan` , `white` . Optional kann ein `bright-` vorangestellt werden um die helle Version zu erhalten (z.B. `bright-white` ).
- Eine `#` gefolgt von einer sechsstelligen Hexadezimalnummer. Dies ergibt einen [RGB hex Farbcode ](https://www.w3schools.com/colors/colors_hexadecimal.asp ).
- Eine Zahl zwischen 0-255. Dies ergibt einen [8-bit ANSI-Farbcode ](https://i.stack.imgur.com/KTSQa.png ).
2019-10-04 08:57:43 +00:00
2019-12-14 23:46:45 +00:00
Wenn mehrere Farben für Vordergrund oder Hintergrund angegeben werden, hat die letzte Farbe der Zeichenkette Priorität.