O problema era que a versão de zsh era 4.3.6. De acordo com as notas de lançamento , o recurso de expansão de cor %F do prompt não foi adicionado até 5.0 (embora as notas de versão não são 100% claros aqui-- em todo caso, %F não aparece na 4.3.6 zshmisc manpage, que contém a documentação de expansão de prompt). Confusamente, o %F ainda é removido da string de formato (aparentemente sem fazer nada) - é apenas o argumento (o nome da cor ou o número entre chaves) que não é tocado. Consegui resolver o problema substituindo %F{color} strings em minha string de formato de prompt por códigos de escape ANSI (por exemplo, %F{blue} se torna \e[34m e %f , que redefine a cor, torna-se \e[0m ).