-
-
Notifications
You must be signed in to change notification settings - Fork 977
Home
By default, pure only changes the color of the prompt symbol. You can change this behavior by modifying PROMPT
after pure
has been initialized in your .zshrc
.
.zshrc
:
prompt pure
PROMPT='%(?.%F{magenta}△.%F{red}▲)%f '
The above change would show a magenta △
character by default, and a red ▲
when there is a non-zero exit status. This works because pure
initialised PROMPT
only once, so you are free to modify it afterwards.
The prompt character still turns red if the last command didn't exit with 0, but adds another magenta ❯
to show that it was the previous command that failed.
Replace:
PROMPT='%(?.%F{magenta}.%F{red})❯%f '
With:
PROMPT='%(?.%F{magenta}.%F{red}❯%F{magenta})❯%f '
Add in prompt_pure_setup()
zstyle ':prezto:module:editor:info:keymap:primary' format "❯%f"
zstyle ':prezto:module:editor:info:keymap:alternate' format "❮%f"
and change the PROMPT
line to
PROMPT='%(?.%F{magenta}.%F{red})${editor_info[keymap]} '
It works using prezto, still looking for a generic solution
Following this guide I got the mode prompt without Prezto.
VIM_PROMPT="❯"
PROMPT='%(?.%F{magenta}.%F{red})${VIM_PROMPT}%f '
prompt_pure_update_vim_prompt() {
zle || {
print "error: pure_update_vim_prompt must be called when zle is active"
return 1
}
VIM_PROMPT=${${KEYMAP/vicmd/❮}/(main|viins)/❯}
zle .reset-prompt
}
function zle-line-init zle-keymap-select {
prompt_pure_update_vim_prompt
}
zle -N zle-line-init
zle -N zle-keymap-select
Put all of this code to your .zshrc
or, if you do not wish to replace your zle-line-init
and zle-keymap-select
functions, you can choose to call prompt_pure_update_vim_prompt
from them.
Pure's default symbols are cool, but if you use a limited font such as Inconsolata (because hey, it does look good), you'll need to change them. These worked for me on Windows:
PURE_PROMPT_SYMBOL='»'
PURE_GIT_DOWN_ARROW='↑'
PURE_GIT_UP_ARROW='↓'
To show the current system time before the prompt symbol like
Initialize pure with:
prompt pure
PROMPT='%F{white}%* '$PROMPT
Alternatively you can set RPROMPT='%F{white}%*'
beforehand.
Let's face it, a really long directory path hurts readability and can easily be aliased to something much more meaningful. Pure provides no such functionality, however, Zsh does!
By enabling the Zsh option for named directories (setopt AUTO_NAME_DIRS
) we can alias directories by assigning them to a variable.
An example .zshrc
with one aliased directory (SUPERSECRET
):
setopt AUTO_NAME_DIRS
SUPERSECRET=$HOME/a/really/long/path/to/my/SecretProject
prompt pure
And here's the result:
~
❯ cd $SUPERSECRET
~SUPERSECRET
❯ pwd
/Users/myuser/a/really/long/path/to/my/SecretProject
As a bonus, you can enable cdable variables (setopt CDABLE_VARS
). This allows us to omit the $
when cd
ing into the directory. We can now simply cd SUPERSECRET
.
To display Pure as a single line prompt, add this to your .zshrc
:
prompt pure
prompt_newline='%666v'
PROMPT=" $PROMPT"
See #228.
Add the following to the root
users .zshrc
:
# For completeness, start by closing the original %F{magenta} with %f.
# The final %f will be added by the PROMPT definition.
PURE_PROMPT_SYMBOL='%f%F{red}#%f %F{magenta}❯'
Originally suggested in #378.
PROMPT='%(1j.[%j] .)%(?.%F{magenta}.%F{red})${PURE_PROMPT_SYMBOL:-❯}%f '
We're simply adding %(1j.[%j] .)%
to the regular pure prompt.
This works because %(x.true.false)
is a test (just like we're doing with the prompt color %(?.true.false)
. %j
is something that expands to the number of jobs and and %(j.t.f)
tests the number of jobs. With 1j
we are saying that if the number of jobs >= 1, the test is truthy which will produce the truthy value ([%j]
), otherwise an empty string.
Pure sets the title in an attempt to provide useful information to the user. However, this might not work for all users. Fortunately, the shell is dynamic, and you can override any function.
# First, load Pure.
prompt pure
# Then, replace the set title function with an empty one.
prompt_pure_set_title() {}
See: https://github.com/sindresorhus/pure/pull/383.
@sapegin’s Bash Prompt
Bash prompt and color theme for Terminal.app.
@brandonweiss’s Fish Prompt
Pure.fish is a Pure-inspired prompt for fish shell.
@therealklanni's Purity fork
Purity is my own spin on Pure. It favors a more compact current working directory, important details on the main prompt line, and extra Git indicators (modified, staged, deleted, renamed, unmerged, and untracked items) in addition to the unique features of Pure (namely: the "pull ready" indicator and execution time feedback).
@rafaelrinaldi's Fish Prompt
pure
is a direct port of the original pure
theme to fish shell.
It's fast and implements all the features available on the original version, including symbols, colors and indicators (Git repository info, previous command execution time with threshold, and so on).
Although the screenshot shows a light Terminal theme, it also works well with dark themes.
Free to open an issue to help me improve the theme.