Você pode obter o efeito desejado (se bem que eu acerte) usando a função precmd , que é executada toda vez que o prompt é exibido, para imprimir linhas adicionais acima do prompt.
Use por exemplo este código
precmd() {
LEFT="The time is"
RIGHT="$(date) "
RIGHTWIDTH=$(($COLUMNS-${#LEFT}))
print $LEFT${(l:$RIGHTWIDTH::.:)RIGHT}
}
PS1="foo > "
RPS1="bar"
Explicação
-
$LEFTe$RIGHTmantêm as strings para o lado esquerdo e direito, resp. Você pode usar a saída do comando com a sintaxe$(...). -
$RIGHTWIDTHé a diferença da largura do terminal atual (armazenada por zsh no parâmetro$COLUMNS) e a largura da sequência da esquerda.$((...))é para expressões matemáticas - A mágica vem com
${(l:$RIGHTWIDTH::.:)RIGHT}, em que o parâmetro$RIGHTé preenchido à esquerda (l) por pontos (omite o último:.:se você desejar espaços) para o comprimento de$RIGHTWIDTH. - Imprima a linha adicional. Repita os comandos se quiser mais linhas.
-
PS1eRPS1são menores paraPROMPTeRPROMPT.
Demo
The time is............................................Fri, Sep 18, 2015 8:20:22 PM
foo > _ bar