1
0
Fork 0
mirror of git://git.code.sf.net/p/zsh/code synced 2025-10-23 04:30:24 +02:00

16198: add %j prompt expansion and j test character for no. of jobs in prompt

This commit is contained in:
Oliver Kiddle 2001-11-02 12:35:32 +00:00
parent f3f81f0837
commit 19d2273cb7
4 changed files with 50 additions and 19 deletions

View file

@ -1,35 +1,41 @@
# oliver prompt theme
prompt_oliver_help() {
cat - <<ENDHELP
cat <<'ENDHELP'
With this prompt theme, the prompt contains the current directory,
history number and the previous command\'s exit code (if non-zero)
and a final character which depends on priviledges.
history number, number of jobs (if non-zero) and the previous
command's exit code (if non-zero) and a final character which
depends on priviledges.
The colour of the prompt depends on two associative arrays -
\$pcolour and $\tcolour. Each array is indexed by the name of the
$pcolour and $tcolour. Each array is indexed by the name of the
local host. Alternatively, the colour can be set with parameters
to prompt.
to prompt. To specify colours, use English words like 'yellow',
optionally preceded by 'bold'.
The hostname and username are also included unless they are in the
\$normal_hosts or \$normal_users array.
$normal_hosts or $normal_users array.
ENDHELP
}
prompt_oliver_setup() {
prompt_opts=( percent set )
local pcol=$'\e['${1:-${pcolour[${HOST:=`hostname`}]:-33}}m
local tcol=$'\e['${2:-${tcolour[$HOST]:-37}}m
local a host="%M:" user="%n "
for a in $normal_hosts; do
[[ $HOST == $a ]] && host=""
done
for a in root $normal_users; do
[[ ${USER:-`whoami`} == $a ]] && user=""
done
prompt_opts=( cr subst percent )
PS1="%{$pcol%}$user$host%~ [%h%0(?..:%?)]%# %{$tcol%}"
[[ "${(t)pcolour}" != assoc* ]] && typeset -Ag pcolour
[[ "${(t)tcolour}" != assoc* ]] && typeset -Ag tcolour
local pcol=${1:-${pcolour[${HOST:=`hostname`}]:-yellow}}
local pcolr=$fg[${pcol#bold}]
[[ $pcol = bold* ]] && pcolr=$bold_color$pcolr
local tcol=${2:-${tcolour[$HOST]:-white}}
local tcolr=$reset_color$fg[${tcol#bold}]
[[ $tcol = bold* ]] && tcolr=$tcolr$bold_color
local a host="%m:" user="%n "
[[ $HOST == (${(j(|))~normal_hosts}) ]] && host=""
[[ ${USER:-`whoami`} == (root|${(j(|))~normal_users}) ]] && user=""
PS1="%{$pcolr%}$user$host%~%"'$((COLUMNS-12))'"(l.$prompt_newline. )[%h%1(j.%%%j.)%0(?..:%?)]%# %{$tcolr%}"
}
prompt_oliver_setup "$@"