Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

Spacezsh: async prompt does things in the ZSH way

License

NotificationsYou must be signed in to change notification settings

laggardkernel/spacezsh-prompt

Repository files navigation

ZSH prompt for Astronauts.

Zsh VersionMIT license

Built with ❤︎ bylaggardkernel andcontributors
A fork ofSpaceship ZSH byDenys Dovhan

Spacezsh is anasync prompt tries to do things right in the ZSH way.It introduces a lot of ZSH goodies including:

  • Conditional async on each section/segment with tagsection::async
  • 100%promptinit compliant.
  • autoload all of the functions.
  • Speed the prompt up with ZSH built-in utilities
    • Env var$EPOCHREALTIME replaces external commanddate inexec_time section;
    • ZSH modulejobstates replaces external commandjobs injobs section;
    • Sectionvcs based on ZSH utilityvcs_info replaces sectiongit andhg. It also adds support for SVN;
    • Complete vi mode with more type of hooks being used for a better detection of mode changes.
    • Trigger prompt redrawing on hookchpwd where hookprecmd is not triggered;
  • For more changes, new features, new sections brought by Spacezsh, check theCHANGELOG for detail.

Spacezsh with Hyper and One Dark

VisitTroubleshooting for instructions to recreate this terminal setup.

Features

  • Clever hostname and username displaying.
  • Prompt character turns red if the last command exits with non-zero code.
  • (New) Prompt character changes with vi modes.
  • (New) Current branch and status support for Git, Mercurial, SVN:
    • ? — untracked changes;
    • — unstaged changes;
    • — staged/uncommitted changes in the index;
    • $ — stashed changes;
    • — ahead of remote branch;
    • — behind of remote branch;
    • The following states are supported but disable by default:
      • » — renamed files;
      • — deleted files;
      • = — unmerged changes;
      • changeset/commit id;
  • Indicator for jobs in the background ().
  • Current Node.js version, through nvm/nodenv/n ().
  • Current Ruby version, through rvm/rbenv/chruby/asdf (💎).
  • Current Elm version (🌳)
  • Current Elixir version, through kiex/exenv/elixir (💧).
  • Current Swift version, through swiftenv (🐦).
  • Current Xcode version, through xenv (🛠).
  • Current Go version (🐹).
  • Current PHP version (🐘).
  • Current Rust version (𝗥).
  • Current version of Haskell GHC Compiler, defined in stack.yaml file (λ).
  • Current Julia version ().
  • (New) Currnet Vagrant machine status ()
  • Current Docker version and connected machine (🐳).
  • Current Amazon Web Services (AWS) profile (☁️) (Using named profiles).
  • Current Google Cloud Platform gcloud active configuration (☁️).
  • Current Python virtualenv (🐍).
  • Current .NET SDK version, through dotnet-cli (.NET).
  • Current Ember.js version, through ember-cli (🐹).
  • Current Kubectl context (☸️).
  • Current Terraform workspace (🛠).
  • Package version, if there's is a package in current directory (📦).
  • Current battery level and status:
    • - charging;
    • - discharging;
    • - fully charged.
  • Current Vi-mode mode (with handy aliases for temporarily enabling).
  • Optional exit-code of last command (how to enable).
  • Optional time stamps 12/24hr in format (how to enable).
  • Execution time of the last command if it exceeds the set threshold.

Want more features? Please,open an issue or send pull request.

Requirements

To work correctly, you will first need:

Installing

Use this command in your.zshrc to load Spacezsh:

# Optional: compile source files into bytecode to speed up init# zinit ice pick'spacezsh.zsh' \#   compile'{presets/^(*.zwc),lib/**/^(*.zwc),sections/^(*.zwc)}'zinit light laggardkernel/spacezsh-prompt

TODO

Clone this repo:

git clone https://github.com/laggardkernel/spacezsh-prompt.git"$ZSH_CUSTOM/themes/spacezsh-prompt" --depth=1

Symlinkspacezsh.zsh-theme to your oh-my-zsh custom themes directory:

ln -s"$ZSH_CUSTOM/themes/spacezsh-prompt/spacezsh.zsh-theme""$ZSH_CUSTOM/themes/spacezsh.zsh-theme"

SetZSH_THEME="spacezsh" in your.zshrc.

Customization

Spacezsh works well out of the box, but you can customize almost everything if you want.

  • Options — Tweak section's behavior with tons of options.
  • API — Define a custom section that will do exactly what you want.

You have the ability to customize or disable specific elements of Spaceship. Set options and define new sections in your.zshrc file,after the theme. To include a custom section you have defined in your prompt, add it to theSPACESHIP_PROMPT_ORDER.

For example:

# .zshrc# add Spaceship (differs by setup, see Installating above)section_mysection() {# ...}SPACESHIP_PROMPT_ORDER=(<any preceding sections> mysection<any following sections>)

To append custom sections to the default Spaceship prompt, follow the form:

SPACESHIP_PROMPT_ORDER=($SPACESHIP_PROMPT_ORDER mysection)

To prepend custom sections to the default Spaceship prompt, follow the form:

SPACESHIP_PROMPT_ORDER=(mysection$SPACESHIP_PROMPT_ORDER)

Troubleshooting

Having trouble? Take a look at outTroubleshooting page.

Still struggling? Please,file an issue, describe your problem and we will gladly help you.

Credits

License

MIT ©laggardkernel


[8]ページ先頭

©2009-2025 Movatter.jp