Réponses:
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 bash
semble 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 bash
que 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.
PROMPT
variable d'environnement dans votre .zprofile
, par exemple:EXPORT PROMPT="%(5~|%-1~/…/%3~|%4~)"
.zshrc
et export
aucun paramètre interne du shell n'est vraiment nécessaire PROMPT
.
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.
Vous pouvez utiliser %3d
l'expansion rapide :
/home/cuonglm/.config/fish/functions $ PS1='%3d $ '
.config/fish/functions $
La forme générale est la suivante %d
: si un entier positif suit d
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:
.config/fish/functions $ PS1='%-2d $ '
/home/cuonglm $
Voir http://zsh.sourceforge.net/Doc/Release/Prompt-Expansion.html ouman zshmisc
%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 %3d
ou %3~
, par exemple
% mkdir -p ~/a/b/c/d
% cd ~/a/b/c/d
% PS1='%n@%m: %3d%% '
user@computer: b/c/d%
~/a/b
comme.../a/b
au lieu de~/a/b
. Pour résoudre ce problème, vous pouvez utiliser%(5~|…/%3~|%~)
.