Pour obtenir un effet similaire bash, c'est-à-dire incluant le ..., essayez:
%(4~|.../%3~|%~)
Ceci vérifie si le chemin est long d'au moins 4 éléments ( %(4~|true|false)) et, s'il est vrai, imprime quelques points avec les 3 derniers éléments ( .../%3~), sinon le chemin complet est imprimé %~.
J'ai remarqué que cela bashsemble raccourcir les chemins dans le répertoire personnel différemment, par exemple:
~/.../some/long/path
Pour un effet similaire, vous pouvez utiliser:
%(5~|%-1~/…/%3~|%4~)
Ceci vérifie si le chemin est plus long que 5 éléments et dans ce cas, imprime le premier élément ( %-1~), certains points ( /…/) et les 3 derniers éléments. Ce n'est pas exactement la même chose que les chemins, qui ne sont pas dans votre répertoire personnel, auront également le premier élément au début, alors bashque les points seront imprimés dans ce cas. Donc
/this/…/some/silly/path
au lieu de
.../some/silly/path
Mais ce n'est pas nécessairement une mauvaise chose.
J'aime mieux la première version, mais notez qu'elle apparaît ~/a/bcomme .../a/bau lieu de ~/a/b. Pour résoudre ce problème, vous pouvez utiliser %(5~|…/%3~|%~).
momar
Pour ceux qui ne connaissent pas zsh (comme moi), vous souhaitez utiliser cette syntaxe avec la PROMPTvariable d'environnement dans votre .zprofile, par exemple:EXPORT PROMPT="%(5~|%-1~/…/%3~|%4~)"
Ryan H.
1
@RyanH. Merci, en relisant ma réponse, je remarque que je n'ai jamais mentionné où ces réglages doivent être effectués. Je vais devoir arranger ça. Deux petites choses à propos de votre commentaire: les paramètres des sessions shell interactives doivent être définis .zshrcet exportaucun paramètre interne du shell n'est vraiment nécessaire PROMPT.
Adaephon
@Adaephon Merci pour l'info. Je vais réparer! :)
Ryan H.
8
En plus des autres réponses données ici, vous pouvez également utiliser %<pour tronquer le chemin d'accès à un nombre donné de caractères . Je trouve cela préférable à l'utilisation %<n>d, car les éléments de chemin individuels peuvent évidemment être assez longs en eux-mêmes. L'utilisation %<donne une longueur d'invite maximale beaucoup plus prévisible.
Par exemple, pour tronquer à gauche l'élément path avec l'extension tilde ( %~) à 15 caractères, en remplaçant les caractères supprimés par .., vous pouvez faire quelque chose comme ceci:
PROMPT='%n@%m:%15<..<%~%<<%# '
Ceci est documenté dans le manuel Zsh sous Expansion rapide , à la fin de la page.
La forme générale est la suivante %d: si un entier positif suit dspécifie les composants de fin à afficher du chemin actuel, la moyenne zéro affiche le chemin entier, un entier négatif signifie le chemin principal à afficher:
%d
%/Current working directory.If an integer follows the ‘%’, it specifies a number of trailing components of the current working directory to show
%~As%d and %/, but if the current working directory starts with $HOME, that part is replaced by a ‘~’.
Donc, pour obtenir quelque chose de similaire PROMPT_DIRTRIM=3, vous pouvez utiliser %3dou %3~, par exemple
~/a/b
comme.../a/b
au lieu de~/a/b
. Pour résoudre ce problème, vous pouvez utiliser%(5~|…/%3~|%~)
.PROMPT
variable d'environnement dans votre.zprofile
, par exemple:EXPORT PROMPT="%(5~|%-1~/…/%3~|%4~)"
.zshrc
etexport
aucun paramètre interne du shell n'est vraiment nécessairePROMPT
.En plus des autres réponses données ici, vous pouvez également utiliser
%<
pour tronquer le chemin d'accès à un nombre donné de caractères . Je trouve cela préférable à l'utilisation%<n>d
, car les éléments de chemin individuels peuvent évidemment être assez longs en eux-mêmes. L'utilisation%<
donne une longueur d'invite maximale beaucoup plus prévisible.Par exemple, pour tronquer à gauche l'élément path avec l'extension tilde (
%~
) à 15 caractères, en remplaçant les caractères supprimés par..
, vous pouvez faire quelque chose comme ceci:Ceci est documenté dans le manuel Zsh sous Expansion rapide , à la fin de la page.
la source
Vous pouvez utiliser
%3d
l'expansion rapide :La forme générale est la suivante
%d
: si un entier positif suitd
spécifie les composants de fin à afficher du chemin actuel, la moyenne zéro affiche le chemin entier, un entier négatif signifie le chemin principal à afficher:la source
Voir http://zsh.sourceforge.net/Doc/Release/Prompt-Expansion.html ou
man zshmisc
Donc, pour obtenir quelque chose de similaire
PROMPT_DIRTRIM=3
, vous pouvez utiliser%3d
ou%3~
, par exemplela source