Похоже, что в ваших escape-последовательностях ANSI отсутствуют лишние левые скобки, плюс я не думаю, что \[
делает то, что вы ожидаете.
Вот что вы хотите:
RPROMPT="%(1j.%{^[[33m%} X%{^[[0m%}.)"
Однако может оказаться более полезным, чтобы в подсказке было показано , сколько заданий находится в фоновом режиме:
RPROMPT="%(1j.%{^[[33m%} (%j jobs)%{^[[0m%}.)"
Примечание : Эти ^[
выше являются буквальными escape-символами - например, 0x1B
. В командной строке (или в режиме вставки Vim, если вы используете Vim для редактирования .zshrc
), введите Control-V, а затем Control- [для вставки escape-символа.