Est-il possible de mettre en surbrillance (définir une couleur d'arrière-plan) pour toute la ligne de l'invite dans zsh
? Dans ma configuration emacs, j'ai la ligne sur laquelle le curseur se trouve d'une couleur légèrement différente de l'arrière-plan de la fenêtre, ce qui est d'une grande aide visuelle. Je me demande s'il est possible de faire la même chose dans mon invite terminal / zsh, afin qu'elle "dessine effectivement une ligne" sous tout ce qui a été exécuté.
J'ai essayé de définir PROMPT='%{$bg[grey]%}# '
mon, .zshrc
mais le point culminant ne s'étend que dans la mesure où je tape, pas jusqu'au bord du terminal.
Ce que j'essaie de réaliser est-il possible?
Vous pouvez faire tout ce que vous voulez avec la ligne d'invite * - l'aspect problématique est de le faire annuler ensuite. Je suppose que vous ne voulez pas que chaque ligne qui ait déjà reçu une invite s'affiche dans vos couleurs hilight.
Il serait presque plus facile de supprimer la ligne par la suite, mais alors vous n'avez pas votre commande. Supprimez peut-être l'invite, puis faites écho à la commande (avec une pseudo-invite comme
$
). Vous pouvez demander à l'invite de commencer par une séquence de sauvegarde du curseur ANSIESC [s
, puis de laprecmd
restaurerESC [u
et de tout effacer après le curseurESC [0J
, puis de répéter la commande (je ne me souviens pas comment obtenir la commande de l'intérieurprecmd
).* Ceci est une réponse incomplète, je ne sais pas comment rendre la commande hilight dans une couleur d'arrière-plan différente.
la source
Si je change
grey
pourwhite
, votre exemple fonctionne réellement pour moi.Quel terminal utilisez-vous? Peut-être qu'il gère différemment l'effacement des couleurs d'arrière-plan?
Voici quelques alternatives à essayer:
Donnez à la ligne d'invite entière un arrière-plan gris:
(devrait être le même que votre exemple, mais une manière différente de l'écrire.)
Imprimez une ligne avant l'invite:
(Si vous passez
"\n"
à"\r"
, cela devrait souligner la ligne actuelle, mais cela ne semble pas fonctionner. Je suppose que zsh efface la ligne actuelle lors de l'impression de l'invite, ce qui m'amène à la première solution.)Mettez les commandes (c'est-à-dire tout ce que vous tapez) en gras:
la source