TL; DR
Tout ce que vous avez à faire est de le mettre dans votre ~/.zshrc
(ou dans le même fichier que votre thème d'invite):
ZLE_RPROMPT_INDENT=0
Détails
Dans les versions de ZSH menant à 5.0.2, une valeur dans le code source C de ZSH appelée rprompt_off
(qui définissait le décalage de la marge droite) était codée en dur 1
.
Mais dans la version 5.0.5, les développeurs ont ajouté la possibilité de remplacer cette valeur par défaut en définissant la ZLE_RPROMPT_INDENT
variable d'environnement.
La raison de ce "retrait" est que certains terminaux plus anciens commenceraient à défiler si la dernière cellule de l'affichage avait un caractère.
Pour les versions de ZSH antérieures à 5.0.5
Si vous utilisez une ancienne version de ZSH et ne pouvez pas mettre à jour, vous pouvez toujours vous débarrasser de cet espace en effectuant les deux opérations suivantes:
- Trick ZSH en pensant à votre rprompt est un personnage plus court que utilise réellement l'emballage standard invisible séquence:
%{...%}
- Ensuite, envoyer une séquence d'échappement de retour de curseur en utilisant terminfo:
%{terminfo[cub1]}
Consultez la FAQ et ce message sur la liste de diffusion pour plus d'informations.
Anthony Michael Cook
la source
%git<Tab>
transforme en%ggit
J'ai envoyé un rapport de bogue aux responsables de zsh, mais il semble que ce comportement soit d'origine. Ce problème m'a cependant énervé tellement que j'ai décidé de patcher et de compiler zsh moi-même comme correctif temporaire. Si vous êtes sous OS X et utilisez Homebrew (vous devriez), vous pouvez installer zsh, y compris mon correctif, en exécutant:
vous voudrez probablement ajouter
/usr/local/bin/zsh
à/etc/shells
etchsh -s /usr/local/bin/zsh
après. Enfin, voici le diff brut pour tous ceux qui sont intéressés:la source
Je pense que l'espace blanc à droite est codé en dur. Mais vous pouvez tromper
zsh
avec le paramètre suivant:qui en principe dit
zsh
que l'étoile n'occupe aucun personnage; deman zshmisc
:L'inconvénient est que vous "décalez" le blanc à la fin de
PROMPT
:Les
|
symboles désignent les bords terminaux, ■ le curseur.Une autre idée serait d'augmenter
COLUMNS
de 1:Mais il faut penser à un moyen de le faire uniquement pour le rendu rapide, mais pas pour les commandes. Et cela avalera le dernier caractère de chaque ligne d'une ligne de commande multiligne.
la source