mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-10-28 17:10:59 +01:00
Merge of 22672: function broken when KSH_ARRAYS is on.
This commit is contained in:
parent
8189dd02ea
commit
5ccd9e0bc6
1 changed files with 73 additions and 0 deletions
73
Functions/Prompts/prompt_clint_setup
Normal file
73
Functions/Prompts/prompt_clint_setup
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
# clint prompt theme
|
||||
|
||||
prompt_clint_help () {
|
||||
cat <<'EOF'
|
||||
|
||||
prompt clint [<color1> [<color2> [<color3> [<color4> [<color5>]]]]]
|
||||
|
||||
defaults are red, cyan, green, yellow, and white, respectively.
|
||||
|
||||
EOF
|
||||
}
|
||||
|
||||
prompt_clint_setup () {
|
||||
local -a pcc
|
||||
local -A pc
|
||||
local p_date p_tty p_plat p_ver p_userpwd p_apm p_shlvlhist p_rc p_end p_win
|
||||
|
||||
pcc[1]=${1:-'red'}
|
||||
pcc[2]=${2:-'cyan'}
|
||||
pcc[3]=${3:-'green'}
|
||||
pcc[4]=${4:-'yellow'}
|
||||
pcc[5]=${5:-'white'}
|
||||
|
||||
pc['\[']="%{$fg_no_bold[$pcc[1]]%}["
|
||||
pc['\]']="%{$fg_no_bold[$pcc[1]]%}]"
|
||||
pc['<']="%{$fg_no_bold[$pcc[1]]%}<"
|
||||
pc['>']="%{$fg_no_bold[$pcc[1]]%}>"
|
||||
pc['\(']="%{$fg_no_bold[$pcc[1]]%}("
|
||||
pc['\)']="%{$fg_no_bold[$pcc[1]]%})"
|
||||
|
||||
p_date="$pc['\[']%{$fg_no_bold[$pcc[2]]%}%D{%a %y/%m/%d %R %Z}$pc['\]']"
|
||||
p_tty="$pc['\[']%{$fg_no_bold[$pcc[3]]%}%l$pc['\]']"
|
||||
p_plat="$pc['\[']%{$fg_no_bold[$pcc[2]]%}${MACHTYPE}/${OSTYPE}/$(uname -r)$pc['\]']"
|
||||
p_ver="$pc['\[']%{$fg_no_bold[$pcc[2]]%}${ZSH_VERSION}$pc['\]']"
|
||||
|
||||
[[ -n "$WINDOW" ]] && p_win="$pc['\(']%{$fg_bold[$pcc[4]]%}$WINDOW$pc['\)']"
|
||||
|
||||
p_userpwd="$pc['<']%{$fg_no_bold[$pcc[3]]%}%n@%m$p_win%{$fg_bold[$pcc[5]]%}:%{$fg_no_bold[$pcc[4]]%}%~$pc['>']"
|
||||
p_git="%(2v.-%U%2v%u-.)"
|
||||
|
||||
p_shlvlhist="%{$reset_color%}zsh%(2L./$SHLVL.) %B%h%b "
|
||||
p_rc="%(?..[%?%1v] )"
|
||||
p_end="%{$reset_color%}%B%#%b %{$fg_no_bold[$pcc[2]]%}"
|
||||
|
||||
POSTEDIT="$reset_color"
|
||||
|
||||
prompt="$p_date$p_tty$p_plat$p_ver
|
||||
$p_userpwd
|
||||
$p_shlvlhist$p_rc$p_git$p_end"
|
||||
PS2='%(4_.\.)%3_> %E'
|
||||
|
||||
precmd () { prompt_clint_precmd }
|
||||
preexec () { }
|
||||
}
|
||||
|
||||
prompt_clint_precmd () {
|
||||
setopt noxtrace noksharrays localoptions
|
||||
local exitstatus=$?
|
||||
local git_dir git_ref
|
||||
|
||||
psvar=()
|
||||
[[ $exitstatus -ge 128 ]] && psvar[1]=" $signals[$exitstatus-127]" ||
|
||||
psvar[1]=""
|
||||
|
||||
[[ -o interactive ]] && jobs -l
|
||||
|
||||
git_dir=$(git-rev-parse --git-dir 2> /dev/null) || return
|
||||
git_ref=$(git-symbolic-ref HEAD 2> /dev/null) || git_ref="(no branch)"
|
||||
psvar[2]=${ref#refs/heads/}
|
||||
|
||||
}
|
||||
|
||||
prompt_clint_setup "$@"
|
||||
Loading…
Add table
Add a link
Reference in a new issue