Impossible de mettre «X» à droite pour indiquer le nombre de tâches dans Zsh
-
03-07-2019 - |
Question
Ce le code de l'article ne le fait pas. travaille pour moi. J'ai collé tout son code dans mon .zshrc.
J'ai les éléments suivants dans mon .zshrc
RPROMPT='%{\[0;33m%}%1v%{\[0m%}'
Il devrait indiquer si vous avez ou non des emplois. Cependant, cela ne le fait pas pour moi.
Je souhaite que le symbole X apparaisse à la bonne invite pour indiquer qu'un travail est en cours d'exécution.
Comment pouvez-vous avoir une invite qui indique à X si vous avez plusieurs emplois en Zsh?
La solution
Le code que vous utilisez ne fonctionnera pas car il essaie d'utiliser la variable $ psvar
, que vous n'avez pas encore définie. Cet article l'a probablement mentionné ailleurs.
Dans tous les cas, pour afficher le nombre de tâches dans RPROMPT
, utilisez
<*>gt; RPROMPT="%1(j.X.)"
gt; RPROMPT="%j Job(s)"
Pour qu'il affiche un 'X' si vous avez au moins un travail en cours d'exécution, utilisez
<*> Consultez la section PROMPT de la page de manuel zshmisc
ou prenez un lien: http://www.manpagez.com/man/1/zshmisc/ . Il explique toutes les séquences d’extension que vous pouvez utiliser pour afficher des informations dans votre invite.
Autres conseils
Il semble que vous manquiez de crochets extra-gauche dans vos séquences d'échappement ANSI, et je ne pense pas que \ [
donne les résultats que vous attendez.
Voici ce que vous voulez:
RPROMPT="%(1j.%{^[[33m%} X%{^[[0m%}.)"
Toutefois, il peut s'avérer plus utile que l'invite indique combien de tâches sont en arrière-plan:
RPROMPT="%(1j.%{^[[33m%} (%j jobs)%{^[[0m%}.)"
Remarque : ces ^ [
ci-dessus sont des caractères d'échappement littéraux - par exemple, 0x1B
. Sur la ligne de commande (ou en mode insertion de Vim si vous utilisez Vim pour éditer votre .zshrc
), tapez Control-V puis Control- [pour insérer un caractère d'échappement.