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

Pretty, minimal and fast ZSH prompt

License

NotificationsYou must be signed in to change notification settings

sindresorhus/pure

Repository files navigation

Pretty, minimal and fast ZSH prompt

Overview

Most prompts are cluttered, ugly and slow. We wanted something visually pleasing that stayed out of our way.

Why?

  • Comes with the perfect prompt character.Author went through the whole Unicode range to find it.
  • Showsgit branch and whether it's dirty (with a*).
  • Indicates when you have unpushed/unpulledgit commits with up/down arrows.(Check is done asynchronously!)
  • Prompt character turns red if the last command didn't exit with0.
  • Command execution time will be displayed if it exceeds the set threshold.
  • Username and host only displayed when in an SSH session or a container.
  • Shows the current path in the title and thecurrent folder & command when a process is running.
  • Support VI-mode indication by reverse prompt symbol (Zsh 5.3+).
  • Makes an excellent starting point for your own custom prompt.

Install

Can be installed withnpm (notyarn) or manually. Requires Git 2.15.2+ and ZSH 5.2+. Older versions of ZSH are known to work, but they arenot recommended.

npm

npm install --global pure-prompt

That's it. Skip toGetting started.

brew install pure

If you're not using ZSH from Homebrew (brew install zsh and$(brew --prefix)/bin/zsh), you must also add the site-functions to yourfpath in$HOME/.zshrc:

fpath+=("$(brew --prefix)/share/zsh/site-functions")

Manually

  1. Clone this repo somewhere. Here we'll use$HOME/.zsh/pure.
mkdir -p"$HOME/.zsh"git clone https://github.com/sindresorhus/pure.git"$HOME/.zsh/pure"
  1. Add the path of the cloned repo to$fpath in$HOME/.zshrc.
# .zshrcfpath+=($HOME/.zsh/pure)

Getting started

Initialize the prompt system (if not so already) and choosepure:

# .zshrcautoload -U promptinit; promptinitprompt pure

Options

OptionDescriptionDefault value
PURE_CMD_MAX_EXEC_TIMEThe max execution time of a process before its run time is shown when it exits.5 seconds
PURE_GIT_PULLPrevents Pure from checking whether the current Git remote has been updated.1
PURE_GIT_UNTRACKED_DIRTYDo not include untracked files in dirtiness check. Mostly useful on large repos (like WebKit).1
PURE_GIT_DELAY_DIRTY_CHECKTime in seconds to delay git dirty checking whengit status takes > 5 seconds.1800 seconds
PURE_PROMPT_SYMBOLDefines the prompt symbol.
PURE_PROMPT_VICMD_SYMBOLDefines the prompt symbol used when thevicmd keymap is active (VI-mode).
PURE_GIT_DOWN_ARROWDefines the git down arrow symbol.
PURE_GIT_UP_ARROWDefines the git up arrow symbol.
PURE_GIT_STASH_SYMBOLDefines the git stash symbol.

Zstyle options

Showing git stash status as part of the prompt is not activated by default. To activate this you'll need to opt in viazstyle:

zstyle :prompt:pure:git:stash show yes

You can set Pure to onlygit fetch the upstream branch of the current local branch. In some cases, this can result in faster updates for Git arrows, but for most users, it's better to leave this setting disabled. You can enable it with:

zstyle :prompt:pure:git:fetch only_upstream yes

nix-shell integration adds the shell name to the prompt when used from within a nix shell. It is enabled by default, you can disable it with:

zstyle :prompt:pure:environment:nix-shell show no

Colors

As explained in ZSH'smanual, color values can be:

  • A decimal integer corresponding to the color index of your terminal. If your$TERM isxterm-256color, see thischart.
  • The name of one of the following nine colors:black,red,green,yellow,blue,magenta,cyan,white, anddefault (the terminal’s default foreground)
  • # followed by an RGB triplet in hexadecimal format, for example#424242. Only if your terminal supports 24-bit colors (true color) or when thezsh/nearcolor module is loaded.

Colors can be changed by usingzstyle with a pattern of the form:prompt:pure:$color_name and stylecolor. The color names, their default, and what part they affect are:

  • execution_time (yellow) - The execution time of the last command when exceedingPURE_CMD_MAX_EXEC_TIME.
  • git:arrow (cyan) - ForPURE_GIT_UP_ARROW andPURE_GIT_DOWN_ARROW.
  • git:stash (cyan) - ForPURE_GIT_STASH_SYMBOL.
  • git:branch (242) - The name of the current branch when in a Git repository.
  • git:branch:cached (red) - The name of the current branch when the data isn't fresh.
  • git:action (242) - The current action in progress (cherry-pick, rebase, etc.) when in a Git repository.
  • git:dirty (218) - The asterisk showing the branch is dirty.
  • host (242) - The hostname when on a remote machine.
  • path (blue) - The current path, for example,PWD.
  • prompt:error (red) - ThePURE_PROMPT_SYMBOL when the previous command hasfailed.
  • prompt:success (magenta) - ThePURE_PROMPT_SYMBOL when the previous command hassucceeded.
  • prompt:continuation (242) - The color for showing the state of the parser in the continuation prompt (PS2). It's the pink part inthis screenshot, it appears in the same spot asvirtualenv. You could for example matching both colors so that Pure has a uniform look.
  • suspended_jobs (red) - The symbol indicates that jobs are running in the background.
  • user (242) - The username when on remote machine.
  • user:root (default) - The username when the user is root.
  • virtualenv (242) - The name of the Pythonvirtualenv when in use.

The following diagram shows where each color is applied on the prompt:

┌────────────────────────────────────────────────────── user│      ┌─────────────────────────────────────────────── host│      │           ┌─────────────────────────────────── path│      │           │          ┌──────────────────────── git:branch│      │           │          │     ┌────────────────── git:dirty│      │           │          │     │ ┌──────────────── git:action│      │           │          │     │ │        ┌─────── git:arrow│      │           │          │     │ │        │ ┌───── git:stash│      │           │          │     │ │        │ │ ┌─── execution_time│      │           │          │     │ │        │ │ │zaphod@heartofgold ~/dev/pure master* rebase-i ⇡ ≡ 42svenv ❯│    ││    └───────────────────────────────────────────────── prompt└────────────────────────────────────────────────────── virtualenv (or prompt:continuation)

RGB colors

There are two ways to use RGB colors with the hexadecimal format. The correct way is to use aterminal that support 24-bit colors and enable this feature as explained in the terminal's documentation.

If you can't use such terminal, the modulezsh/nearcolor can be useful. It will map any hexadecimal color to the nearest color in the 88 or 256 color palettes of your terminal, but without using the first 16 colors, since their values can be modified by the user. Keep in mind that when using this module you won't be able to display true RGB colors. It only allows you to specify colors in a more convenient way. The following is an example on how to use this module:

# .zshrczmodload zsh/nearcolorzstyle :prompt:pure:path color'#FF0000'

Example

# .zshrcautoload -U promptinit; promptinit# optionally define some optionsPURE_CMD_MAX_EXEC_TIME=10# change the path colorzstyle :prompt:pure:path color white# change the color for both `prompt:success` and `prompt:error`zstyle':prompt:pure:prompt:*' color cyan# turn on git stash statuszstyle :prompt:pure:git:stash show yesprompt pure

Tips

In the screenshot you see Pure running inHyper with thehyper-snazzy theme and Menlo font.

TheTomorrow Night Eighties theme with theDroid Sans Mono font (15pt) is also anice combination.
Just make sure you have anti-aliasing enabled in your terminal.

To have commands colorized as seen in the screenshot, installzsh-syntax-highlighting.

Integration

  1. SetZSH_THEME="" in your.zshrc to disable oh-my-zsh themes.
  2. Follow the PureInstall instructions.
  3. Do not enable the following (incompatible) plugins:vi-mode,virtualenv.

NOTE:oh-my-zsh overrides the prompt so Pure must be activatedaftersource $ZSH/oh-my-zsh.sh.

Pure is bundled with Prezto. No need to install it.

Addprompt pure to your~/.zpreztorc.

Addzmodule sindresorhus/pure --source async.zsh --source pure.zsh to your.zimrc and runzimfw install.

Update your.zshrc file with the following two lines:

zplug mafredri/zsh-async, from:githubzplug sindresorhus/pure, use:pure.zsh, from:github, as:theme

Update your.zshrc file with the following two lines (order matters):

zinit ice compile'(pure|async).zsh' pick'async.zsh' src'pure.zsh'zinit light sindresorhus/pure

Update your.zshrc file with the following line:

zi light-modefor @sindresorhus/pure

See theZI wiki for more.

FAQ

There are currently no FAQs.

SeeFAQ Archive for previous FAQs.

Ports

Team

Sindre SorhusMathias Fredriksson
Sindre SorhusMathias Fredriksson

[8]ページ先頭

©2009-2025 Movatter.jp