1
0
mirror of https://github.com/Llewellynvdm/starship.git synced 2024-11-05 21:07:52 +00:00
The minimal, blazing-fast, and infinitely customizable prompt for any shell!
Go to file
Jesús Lapastora c3cc40d2ac
feat(cli): Print arguments if argument parsing fails (#3560)
* fix(#3554): Print the command line argv on clap error

This is a very bare implementation that just prints the error
and then a note with the arguments passed, it does this manually
and doesn't use clap. I've also chosen to use `Vec`'s `Debug`
implementation instead of rolling my own one because I thought it was
good enough, but there might be a better way of doing all this.

Altogether, I think this will be very useful to help in the diagnostic
of other bugs :)

* fix(#3554): Print the command line argv on clap error

This is a very bare implementation that just prints the error
and then a note with the arguments passed, it does this manually
and doesn't use clap. I've also chosen to use `Vec`'s `Debug`
implementation instead of rolling my own one because I thought it was
good enough, but there might be a better way of doing all this.

Altogether, I think this will be very useful to help in the diagnostic
of other bugs :)

EDIT: removed `dbg!`, set it to exit always.

* correctness(exit): don't print argv / exit with error on help and
version error kinds

* fix: Avoid panicking when stdout/stderr closing unexpectedly

* refactor(cli): use `use_stderr` instead of manual match for error kinds

`clap` uses `use_stderr` to reliably check whether the error given is
actually an error coming from user input or rather a hint to display
other info (version, help, etc.)

Also reworded/moved a couple of comments so that they explain better
what is the thought process behind the code
2022-02-06 23:04:28 +01:00
.cargo ci: Use dprint to format documentation + TOML files (#3426) 2022-01-20 11:32:09 +03:00
.github feat: Enable Undistract Me for Linux (#3547) 2022-01-31 15:28:13 -06:00
docs fix(status): Enable to convert from i64 to hex_status by casting instead of parsing status. (#3462) 2022-02-05 21:13:42 +01:00
install feat(install): Add posix shell check (#3474) 2022-01-21 17:25:49 +01:00
media chore: resize and compress all flags 2022-01-25 22:53:25 +03:00
src feat(cli): Print arguments if argument parsing fails (#3560) 2022-02-06 23:04:28 +01:00
starship_module_config_derive ci: Use dprint to format documentation + TOML files (#3426) 2022-01-20 11:32:09 +03:00
.dprint.json ci: Use dprint to format documentation + TOML files (#3426) 2022-01-20 11:32:09 +03:00
.gitattributes fix: init script line endings (#3178) 2021-10-30 10:51:56 +02:00
.gitignore feat(package): Add Maven pom.xml version support (#1511) 2020-07-31 09:54:03 +02:00
.rustfmt.toml style: make rustfmt use the default configuration (#1661) 2020-09-19 08:45:17 +02:00
build.rs build: Add additional build information to version and bug report (#2124) 2021-01-22 20:14:51 +01:00
Cargo.lock build: bump clap from 3.0.13 to 3.0.14 (#3552) 2022-02-02 08:05:41 +01:00
Cargo.toml build: bump clap from 3.0.13 to 3.0.14 (#3552) 2022-02-02 08:05:41 +01:00
clippy.toml ci: Use dprint to format documentation + TOML files (#3426) 2022-01-20 11:32:09 +03:00
CODE_OF_CONDUCT.md ci: Use dprint to format documentation + TOML files (#3426) 2022-01-20 11:32:09 +03:00
CONTRIBUTING.md fix(nodejs): use e718 as the default of symbol in node configuration (#3533) 2022-01-30 10:28:00 +01:00
Cross.toml build: add x86_64 freebsd build (#2233) 2021-01-30 12:50:38 +01:00
crowdin.yml chore: update Crowdin PR title 2021-01-29 16:53:32 -05:00
LICENSE chore: Update LICENSE file for 2022 (#3514) 2022-01-25 21:09:06 -06:00
README.md docs: add snapcraft to installation instructions (#3513) 2022-01-25 15:49:48 -06:00
snapcraft.yaml feat: add support for xonsh (#2807) 2021-07-16 15:25:01 -04:00

Starship – Cross-shell prompt

GitHub Actions workflow status Crates.io version Packaging status
Chat on Discord Follow @StarshipPrompt on Twitter

Website · Installation · Configuration

English   Deutsch   Español   Français   Bahasa Indonesia   Italiano   日本語   Português do Brasil   Русский   Tiếng Việt   简体中文   繁體中文

Starship with iTerm2 and the Snazzy theme

The minimal, blazing-fast, and infinitely customizable prompt for any shell!

  • Fast: it's fast really really fast! 🚀
  • Customizable: configure every aspect of your prompt.
  • Universal: works on any shell, on any operating system.
  • Intelligent: shows relevant information at a glance.
  • Feature rich: support for all your favorite tools.
  • Easy: quick to install  start using it in minutes.

Explore the Starship docs  ▶

🚀 Installation

Prerequisites

Step 1. Install Starship

Select your operating system from the list below to view installation instructions:

Android

Install Starship using any of the following package managers:

Repository Instructions
Termux pkg install starship
BSD

Install Starship using any of the following package managers:

Distribution Repository Instructions
Any crates.io cargo install starship --locked
FreeBSD FreshPorts pkg install starship
NetBSD pkgsrc pkgin install starship
Linux

Install the latest version for your system:

sh -c "$(curl -fsSL https://starship.rs/install.sh)"

Alternatively, install Starship using any of the following package managers:

Distribution Repository Instructions
Any crates.io cargo install starship --locked
Any conda-forge conda install -c conda-forge starship
Any Linuxbrew brew install starship
Any Snapcraft snap install starship
Alpine Linux 3.13+ Alpine Linux Packages apk add starship
Arch Linux Arch Linux Community pacman -S starship
CentOS 7+ Copr dnf copr enable atim/starship
dnf install starship
Fedora 31+ Fedora Packages dnf install starship
NixOS nixpkgs nix-env -iA nixos.starship
Gentoo Gentoo Packages emerge app-shells/starship
Manjaro pacman -S starship
NixOS nixpkgs nix-env -iA nixpkgs.starship
Void Linux Void Linux Packages xbps-install -S starship
macOS

Install the latest version for your system:

sh -c "$(curl -fsSL https://starship.rs/install.sh)"

Alternatively, install Starship using any of the following package managers:

Repository Instructions
crates.io cargo install starship --locked
conda-forge conda install -c conda-forge starship
Homebrew brew install starship
MacPorts port install starship
Windows

Install Starship using any of the following package managers:

Repository Instructions
crates.io cargo install starship --locked
Chocolatey choco install starship
conda-forge conda install -c conda-forge starship
Scoop scoop install starship

Step 2. Setup your shell to use Starship

Configure your shell to initialize starship. Select yours from the list below:

Bash

Add the following to the end of ~/.bashrc:

eval "$(starship init bash)"
Cmd

You need to use Clink (v1.2.30+) with Cmd. Create a file at this path %LocalAppData%\clink\starship.lua with the following contents:

load(io.popen('starship init cmd'):read("*a"))()
Elvish

Add the following to the end of ~/.elvish/rc.elv:

eval (starship init elvish)

Note: Only Elvish v0.17+ is supported

Fish

Add the following to the end of ~/.config/fish/config.fish:

starship init fish | source
Ion

Add the following to the end of ~/.config/ion/initrc:

eval $(starship init ion)
Nushell

Add the following to the end of your Nushell configuration (find it by running config path):

startup = [
  "mkdir ~/.cache/starship",
  "starship init nu | save ~/.cache/starship/init.nu",
  "source ~/.cache/starship/init.nu",
]
prompt = "starship_prompt"
PowerShell

Add the following to the end of your PowerShell configuration (find it by running $PROFILE):

Invoke-Expression (&starship init powershell)
Tcsh

Add the following to the end of ~/.tcshrc:

eval `starship init tcsh`
Xonsh

Add the following to the end of ~/.xonshrc:

execx($(starship init xonsh))
Zsh

Add the following to the end of ~/.zshrc:

eval "$(starship init zsh)"

Step 3. Configure Starship

Start a new shell instance, and you should see your beautiful new shell prompt. If you're happy with the defaults, enjoy!

If you're looking to further customize Starship:

  • Configuration learn how to configure Starship to tweak your prompt to your liking

  • Presets get inspired by the pre-built configuration of others

🤝 Contributing

We are always looking for contributors of all skill levels! If you're looking to ease your way into the project, try out a good first issue.

If you are fluent in a non-English language, we greatly appreciate any help keeping our docs translated and up-to-date in other languages. If you would like to help, translations can be contributed on the Starship Crowdin.

If you are interested in helping contribute to starship, please take a look at our Contributing Guide. Also, feel free to drop into our Discord server and say hi. 👋

💭 Inspired By

Please check out these previous works that helped inspire the creation of starship. 🙏


Starship rocket icon

📝 License

Copyright © 2019-present, Starship Contributors.
This project is ISC licensed.