Pure 漂亮,最小和快速ZSH prompt

网友投稿 1181 2022-11-05

Pure 漂亮,最小和快速ZSH prompt

Pure 漂亮,最小和快速ZSH prompt

Pure

Pretty, minimal and fast ZSH prompt

Overview

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

Why?

Comes with the perfect prompt character. Author went through the whole Unicode range to find it.Shows git branch and whether it's dirty (with a *).Indicates when you have unpushed/unpulled git commits with up/down arrows. (Check is done asynchronously!)Prompt character turns red if the last command didn't exit with 0.Command execution time will be displayed if it exceeds the set threshold.Username and host only displayed when in an SSH session.Shows the current path in the title and the current 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 with npm or manually. Requires Git 2.0.0+ and ZSH 5.2+. Older versions of ZSH are known to work, but they are not recommended.

npm

$ npm install --global pure-prompt

That's it. Skip to Getting started.

Manually

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"

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 choose pure:

# .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_PULL=0Prevents Pure from checking whether the current Git remote has been updated.
PURE_GIT_UNTRACKED_DIRTY=0Do not include untracked files in dirtiness check. Mostly useful on large repos (like WebKit).
PURE_GIT_DELAY_DIRTY_CHECKTime in seconds to delay git dirty checking when git status takes > 5 seconds.1800 seconds
PURE_PROMPT_SYMBOLDefines the prompt symbol.
PURE_PROMPT_VICMD_SYMBOLDefines the prompt symbol used when the vicmd 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.

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

zstyle :prompt:pure:git:stash show yes

Colors

As explained in ZSH's manual, color values can be:

A decimal integer corresponding to the color index of your terminal. If your $TERM is xterm-256color, see this chart.The name of one of the following nine colors: black, red, green, yellow, blue, magenta, cyan, white, and default (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 the zsh/nearcolor module is loaded.

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

execution_time (yellow) - The execution time of the last command when exceeding PURE_CMD_MAX_EXEC_TIME.git:arrow (cyan) - For PURE_GIT_UP_ARROW and PURE_GIT_DOWN_ARROW.git:stash (cyan) - For PURE_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) - The PURE_PROMPT_SYMBOL when the previous command has failed.prompt:success (magenta) - The PURE_PROMPT_SYMBOL when the previous command has succeded.prompt:continuation (242) - The color for showing the state of the parser in the continuation prompt (PS2). It's the pink part in this screenshot, it appears in the same spot as virtualenv. You could for example matching both colors so that Pure has a uniform look.user (242) - The username when on remote machine.user:root (default) - The username when the user is root.virtualenv (242) - The name of the Python virtualenv 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 a terminal that support 24-bit colors and enable this feature as explained in the terminal's documentation.

If you can't use such terminal, the module zsh/nearcolor can be useful. It will map any hexadecimal color to the nearest color in the 88 or 256 color palettes of your termial, 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 in Hyper with the hyper-snazzy theme and Menlo font.

The Tomorrow Night Eighties theme with the Droid Sans Mono font (15pt) is also a nice combination. Just make sure you have anti-aliasing enabled in your terminal.

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

Integration

oh-my-zsh

Set ZSH_THEME="" in your .zshrc to disable oh-my-zsh themes.Follow the Pure Install instructions.Do not enable the following (incompatible) plugins: vi-mode, virtualenv.

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

prezto

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

Add prompt pure to your ~/.zpreztorc.

zim

Add zmodule sindresorhus/pure --source async.zsh --source pure.zsh to your .zimrc and run zimfw install.

antigen

Update your .zshrc file with the following two lines (order matters). Do not use the antigen theme function.

antigen bundle mafredri/zsh-asyncantigen bundle sindresorhus/pure

antibody

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

antibody bundle mafredri/zsh-asyncantibody bundle sindresorhus/pure

zplug

Update your .zshrc file with the following two lines:

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

zinit

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

FAQ

There are currently no FAQs.

See FAQ Archive for previous FAQs.

Ports

ZSHtherealklanni/purity - More compact current working directory, important details on the main prompt line, and extra Git indicators.intelfx/pure - Solarized-friendly colors, highly verbose, and fully async Git integration.dfurnes/purer - Compact single-line prompt with built-in Vim-mode indicator.chabou/pure-now - Fork with Now support.pure10k - Configuration file for Powerlevel10k that makes it look like Pure. Bashsapegin/dotfiles - Prompt and color theme for Terminal.app. Fishbrandonweiss/pure.fish - Pure-inspired prompt for Fish. Not intended to have feature parity.rafaelrinaldi/pure - Support for bare Fish and various framework (Oh-My-Fish, Fisherman, and Wahoo). Rustxcambar/purs - Pure-inspired prompt in Rust. Gotalal/mimir - Pure-inspired prompt in Go with Kubernetes and OpenStack cloud support. Not intended to have feature parity. PowerShellnickcox/pure-pwsh - PowerShell/PS Core implementation of the Pure prompt.

Team

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Oracle数据库的启停
下一篇:VMware NSX原理与实践----NSX Edge实现的其他功能
相关文章

 发表评论

暂时没有评论,来抢沙发吧~