Permalink
Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
executable file 32 lines (27 sloc) 872 Bytes
#!/bin/zsh
autoload -U add-zsh-hook zsh_prompt zsh_right_prompt
_prompt_float_precmd () {
zsh_prompt
zsh_right_prompt
local zero='%([BSUbfksu]|[FB]{*})'
local e_prompt="${(e)PROMPT}"
local prompt_colno=${(m)#${(f)"${(%)${(S)${e_prompt}//$~zero/}}"}[1]}
local e_rprompt="${(e)RPROMPT}"
local rprompt_colno=${(m)#${"${(%)${(S)${e_rprompt}//$~zero/}}"}}
if [ $((prompt_colno % COLUMNS + rprompt_colno + 1)) -lt $COLUMNS ]; then
local colno=$((COLUMNS - (prompt_colno + rprompt_colno + 1) % COLUMNS))
local -a prompt_lines
prompt_lines=(${(f)e_prompt})
prompt_lines[1]=$prompt_lines[1]${(l:colno:: :)}$e_rprompt
PROMPT=${(F)prompt_lines}
RPROMPT=
else
PROMPT=$e_prompt
RPROMPT=$e_rprompt
fi
}
zsh_prompt_float () {
add-zsh-hook -D precmd "prompt_*_precmd"
add-zsh-hook precmd _prompt_float_precmd
}
zsh_prompt_float