zsh
имеет условный escape, доступный для использования в подсказках. Он имеет общую форму
%(x.true.false)
, где x
- это условие для проверки одного символа, а true
и false
- произвольные строки, в которые будет расширена конструкция %(...)
, когда это условие правда или ложь, соответственно. В вашем случае символ условия будет ?
, поэтому вы можете написать
PROMPT="%(?.%F{46}(^v^)%f.%F{9}(\`O´)%f) %F{67}..."