7.7 KiB
Frequently Asked Questions
Wie ist die Konfiguration im Demo GIF?
- Terminal Emulator: iTerm2
- Theme: Minimal
- Farbschema: Snazzy
- Schriftart: FiraCode Nerd Font
- Shell: Fish Shell
- Konfiguration: Matchai's Dotfiles
- Prompt: Starship
How do I get command completion as shown in the demo GIF?
Completion support, or autocomplete, is provided by your shell of choice. In the case of the demo, the demo was done with Fish Shell, which provides completions by default. If you use Z Shell (zsh), I'd suggest taking a look at zsh-autosuggestions.
Do top level format
and <module>.disabled
do the same thing?
Ja, beide können benutzt werden, um Module in der Prompt zu deaktivieren. Wenn nur Module deaktiviert werden wollen, sollte <module>.disabled
benutzt werden, aus den folgenden Gründen:
- Disabling modules is more explicit than omitting them from the top level
format
- Mit der Aktualisierung von Starship werden neu erstellte Module an die Eingabezeile angefügt
Die Dokumentation sagt, dass die Starship interkompatibel ist. Warum wird meine bevorzugte Shell nicht unterstützt?
Starship ist auf so eine Weise gebaut, das die Unterstützung so gut wie jeder Shell möglch sein sollte. Die Starship Binärdatei läuft völlig unabhängig von der Shell, und sollte auf jeder benutzt werden können, die eine Anpassung des Stils erlaubt.
Hier ist ein kleines Beispiel, wie man Starship auf bash zum Laufen bringt:
# Den Statuscode des zuletzt ausgeführten Befehls abrufen
STATUS=$?
# Gibt die Anzahl der laufenden Jobs an.
NUM_JOBS=$(jobs -p | wc -l)
# Set the prompt to the output of `starship prompt`
PS1="$(starship prompt --status=$STATUS --jobs=$NUM_JOBS)"
Die Bash Implementation ist etwas komplexer, um erweiterte Funktionen wie das Befehlsdauer-Modul zu ermöglichen und um sicherzustellen, dass Starship mit vorinstallierten Bash Konfigurationen kompatibel ist.
Für eine Liste aller Flaggen, die von Starship-Eingabeaufforderung
akzeptiert wird, verwenden Sie den folgenden Befehl:
starship prompt --help
Die Eingabeaufforderung verwendet so viel Kontext wie möglich, aber keine Flagge ist "notwendig".
How do I run Starship on Linux distributions with older versions of glibc?
If you get an error like "version 'GLIBC_2.18' not found (required by starship)" when using the prebuilt binary (for example, on CentOS 6 or 7), you can use a binary compiled with musl
instead of glibc
:
curl -sS https://starship.rs/install.sh | sh -s -- --platform unknown-linux-musl
Why do I see Executing command "..." timed out.
warnings?
Starship executes different commands to get information to display in the prompt, for example the version of a program or the current git status. To make sure starship doesn't hang while trying to execute these commands we set a time limit, if a command takes longer than this limit starship will stop the execution of the command and output the above warning, this is expected behaviour. This time limit is configurable using the command_timeout
key so if you want you can increase the time limit. You can also follow the debugging steps below to see which command is being slow and see if you can optimise it. Finally you can set the STARSHIP_LOG
env var to error
to hide these warnings.
I see symbols I don't understand or expect, what do they mean?
If you see symbols that you don't recognise you can use starship explain
to explain the currently showing modules.
Starship is doing something unexpected, how can I debug it?
You can enable the debug logs by using the STARSHIP_LOG
env var. These logs can be very verbose so it is often useful to use the module
command if you are trying to debug a particular module, for example, if you are trying to debug the rust
module you could run the following command to get the trace logs and output from the module.
env STARSHIP_LOG=trace starship module rust
If starship is being slow you can try using the timings
command to see if there is a particular module or command that is to blame.
env STARSHIP_LOG=trace starship timings
This will output the trace log and a breakdown of all modules that either took more than 1ms to execute or produced some output.
Finally if you find a bug you can use the bug-report
command to create a GitHub issue.
starship bug-report
Why don't I see a glyph symbol in my prompt?
The most common cause of this is system misconfiguration. Some Linux distros in particular do not come with font support out-of-the-box. Sie müssen sicherstellen, dass:
- Your locale is set to a UTF-8 value, like
de_DE.UTF-8
orja_JP.UTF-8
. WennLC_ALL
kein UTF-8-Wert ist, müssen Sie ihn ändern. - You have an emoji font installed. Most systems come with an emoji font by default, but some (notably Arch Linux) do not. You can usually install one through your system's package manager--noto emoji is a popular choice.
- You are using a Nerd Font.
Um Ihr System zu testen, führen Sie folgende Befehle in einem Terminal aus:
echo -e "\xf0\x9f\x90\x8d"
echo -e "\xee\x82\xa0"
The first line should produce a snake emoji, while the second should produce a powerline branch symbol (e0a0).
If either symbol fails to display correctly, your system is still misconfigured. Unfortunately, getting font configuration correct is sometimes difficult. Benutzer auf dem Discord können vielleicht helfen. If both symbols display correctly, but you still don't see them in starship, file a bug report!
Wie deinstalliere ich Starship?
Starship ist genauso einfach zu deinstallieren wie zu installieren.
- Remove any lines in your shell config (e.g.
~/.bashrc
) used to initialize Starship. - Löschen Sie die Starship-Binary.
If Starship was installed using a package manager, please refer to their docs for uninstallation instructions.
Wenn Starship mit Hilfe des Installationsscripts installiert wurde, entfernt der folgende Befehl Starship:
# Locate and delete the starship binary
sh -c 'rm "$(command -v 'starship')"'
How do I install Starship without sudo
?
The shell install script (https://starship.rs/install.sh
) only attempts to use sudo
if the target installation directory is not writable by the current user. The default installation diretory is the value of the $BIN_DIR
environment variable or /usr/local/bin
if $BIN_DIR
is not set. If you instead set the installation directory to one that is writable by your user, you should be able to install starship without sudo
. For example, curl -sS https://starship.rs/install.sh | sh -s -- -b ~/.local/bin
uses the -b
command line option of the install script to set the installation directory to ~/.local/bin
.
For a non-interactive installation of Starship, don't forget to add the -y
option to skip the confirmation. Check the source of the installation script for a list of all supported installation options.
When using a package manager, see the documentation for your package manager about installing with or without sudo
.