Do precmd setup in separate functions
- Use $precmd_functions to call a set of functions prior to each prompt - Write a separator before each prompt made up of a line of hyphens and a right-justified timestamp
This commit is contained in:
parent
021b4aa2e2
commit
0bd49aaa56
1 changed files with 29 additions and 3 deletions
32
zshrc
32
zshrc
|
@ -29,15 +29,27 @@ else
|
|||
#mytime="%T"
|
||||
fi
|
||||
|
||||
PROMPT=" %(?.%h.%B%F{red}%h%F{default}%b) %* %(!.%B%F{red}.)%3~ %#%(!.%F{default}%b.) "
|
||||
RPROMPT="%m"
|
||||
PROMPT=" %(?.%h.%B%F{red}%h%F{default}%b) %m %(!.%B%F{red}.)%3~ %#%(!.%F{default}%b.) "
|
||||
#RPROMPT="%m"
|
||||
|
||||
precmd ()
|
||||
|
||||
precmd_xterm_title ()
|
||||
{
|
||||
# Set xterm and screen titles
|
||||
[ -n $DISPLAY ] && print -Pn "\e]2;%n@%m\a"
|
||||
}
|
||||
|
||||
precmd_separator ()
|
||||
{
|
||||
# time divider
|
||||
local fillnum=$(($COLUMNS - 9))
|
||||
local sep=''
|
||||
for (( i=0; $i < $fillnum; i++)); do sep="-$sep"; done
|
||||
print -P "%B%F{black}$sep %*%F{default}%b"
|
||||
}
|
||||
|
||||
precmd_functions=(precmd_xterm_title precmd_separator)
|
||||
|
||||
# Shell options
|
||||
setopt \
|
||||
TRANSIENT_RPROMPT \
|
||||
|
@ -139,3 +151,17 @@ function up {
|
|||
pushd ${(j./.)updirs}
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
# Toggle showing a separator before every command
|
||||
function tsep {
|
||||
if (($precmd_functions[(Ie)precmd_separator] > 0)); then
|
||||
precmd_functions=${precmd_functions#precmd_separator}
|
||||
PROMPT=${PROMPT:s/%m/%*/}
|
||||
RPROMPT="%m"
|
||||
else
|
||||
precmd_functions+=(precmd_separator)
|
||||
PROMPT=${PROMPT:s/%\*/%m/}
|
||||
unset RPROMPT
|
||||
fi
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue