zim/modules/prompt/themes/minimal.zsh-theme
Eric Nielsen 8ba9621f48 [prompt] Add sp to the prompt_opts array
in our custom themes.

With zsh starting at version 5.4, when using the `prompt_opts` array,
`nopromptsp` will be set unless the array contains a `sp`. This was
introduced in zsh at
43e55a9bcd (diff-bb10d67e7a8561b66a53a805f3c77a40R233)

Fixes #209
2017-10-01 20:41:43 -05:00

88 řádky
1,9 KiB
Bash
Surový Blame Historie

Tento soubor obsahuje nejednoznačné znaky Unicode

Tento soubor obsahuje znaky Unicode, které mohou být zaměněny s jinými znaky. Pokud si myslíte, že je to záměrné, můžete toto varování bezpečně ignorovat. Použijte tlačítko Escape sekvence k jejich zobrazení.

#
# Minimal theme
# https://github.com/S1cK94/minimal
#
# Requires the `git-info` zmodule to be included in the .zimrc file.
# Global variables
function {
PROMPT_CHAR=''
ON_COLOR='%F{green}'
OFF_COLOR='%f'
ERR_COLOR='%F{red}'
}
prompt_minimal_user() {
print -n '%(!.${ON_COLOR}.${OFF_COLOR})${PROMPT_CHAR}'
}
prompt_minimal_jobs() {
print -n '%(1j.${ON_COLOR}.${OFF_COLOR})${PROMPT_CHAR}'
}
prompt_minimal_vimode() {
local color
case ${KEYMAP} in
main|viins)
color=${ON_COLOR}
;;
*)
color=${OFF_COLOR}
;;
esac
print -n "${color}${PROMPT_CHAR}"
}
prompt_minimal_status() {
print -n '%(0?.${ON_COLOR}.${ERR_COLOR})${PROMPT_CHAR}'
}
prompt_minimal_path() {
local path_color='%F{244}'
print -n "${path_color}${$(short_pwd)//\//%f\/${path_color}}%f"
}
prompt_minimal_git() {
if [[ -n ${git_info} ]]; then
print -n " ${(e)git_info[color]}${(e)git_info[prompt]}"
fi
}
function zle-line-init zle-keymap-select {
zle reset-prompt
zle -R
}
prompt_minimal_precmd() {
(( ${+functions[git-info]} )) && git-info
}
prompt_minimal_setup() {
zle -N zle-line-init
zle -N zle-keymap-select
autoload -Uz colors && colors
autoload -Uz add-zsh-hook
prompt_opts=(cr percent sp subst)
add-zsh-hook precmd prompt_minimal_precmd
zstyle ':zim:git-info:branch' format '%b'
zstyle ':zim:git-info:commit' format '%c'
zstyle ':zim:git-info:dirty' format '${ERR_COLOR}'
zstyle ':zim:git-info:diverged' format '${ERR_COLOR}'
zstyle ':zim:git-info:behind' format '%F{11}'
zstyle ':zim:git-info:ahead' format '${OFF_COLOR}'
zstyle ':zim:git-info:keys' format \
'prompt' '%b%c' \
'color' '$(coalesce "%D" "%V" "%B" "%A" "${ON_COLOR}")'
PROMPT="$(prompt_minimal_user)$(prompt_minimal_jobs)\$(prompt_minimal_vimode)$(prompt_minimal_status)%f "
RPROMPT='$(prompt_minimal_path)$(prompt_minimal_git)'
}
prompt_minimal_setup "$@"