Невозможно поставить & # 8220; X & # 8221; вправо, чтобы указать количество рабочих мест в Zsh
-
03-07-2019 - |
Вопрос
Этот код статьи не подходит работать на меня. Я вставил весь его код в мой .zshrc.
В моем .zshrc
RPROMPT='%{\[0;33m%}%1v%{\[0m%}'
В нем должно быть указано, есть ли у вас работа или нет. Однако, это не делает это для меня.
Я хотел бы получить X в правильном окне, чтобы указать, что у вас есть задание.
Как вы можете получить правильную подсказку, которая показывает X, если у вас более одного задания в Zsh?
Решение
Код, который вы используете, не будет работать, потому что он пытается использовать переменную $ psvar
, которую вы не установили. Возможно, эта статья упоминала об этом где-то еще.
В любом случае, для отображения количества заданий в RPROMPT
используйте
<*>gt; RPROMPT="%1(j.X.)"
gt; RPROMPT="%j Job(s)"
Чтобы он отображал 'X', если у вас запущено хотя бы одно задание, используйте
<*> Просмотрите раздел PROMPT справочной страницы zshmisc
или воспользуйтесь ссылкой: http://www.manpagez.com/man/1/zshmisc/ . Здесь объясняются все последовательности расширения, которые вы можете использовать для отображения информации в вашем приглашении.
Другие советы
Похоже, что в ваших escape-последовательностях ANSI отсутствуют лишние левые скобки, плюс я не думаю, что \ [
делает то, что вы ожидаете.
Вот что вы хотите:
RPROMPT="%(1j.%{^[[33m%} X%{^[[0m%}.)"
Однако может оказаться более полезным, чтобы в приглашении было показано сколько заданий в фоновом режиме:
RPROMPT="%(1j.%{^[[33m%} (%j jobs)%{^[[0m%}.)"
Примечание . Эти ^ [
выше являются буквальными escape-символами & # 8212; например, 0x1B
. В командной строке (или в режиме вставки Vim, если вы используете Vim для редактирования своего .zshrc
), введите Control-V, а затем Control- [для вставки escape-символа.