Você pode encerrar truncamentos - como em "truncar somente até aqui" - com %>>
ou %<<
:
PROMPT="[%n%20>...>%m%>> %1~]%(#.#.$) "
Aqui está a parte relevante do manual do ZSH :
The part of the prompt string to be truncated runs to the end of the string, or to the end of the next enclosing group of the
'%('
construct, or to the next truncation encountered at the same grouping level (i.e. truncations inside a'%('
are separate), which ever comes first. In particular, a truncation with argument zero (e.g.,'%<<'
) marks the end of the range of the string to be truncated while turning off truncation from there on. For example, the prompt'%10<...<%~%<<%# '
will print a truncated representation of the current directory, followed by a'%'
or'#'
, followed by a space. Without the'%<<'
, those two characters would be included in the string to be truncated.