Re: Prompt zsh

2019-11-28 Par sujet benoitlst

Le 2019-11-28 14:34, Erwan David a écrit :

Le 28/11/2019 à 13:57, benoit...@ouvaton.org a écrit :

Bonjour à toutes et tous,

Je recherche une façon de modifier la partie : %~ de mon PROMPT zsh
pour réduire sa longueur quand il prend trop de place dans la ligne de
commande.

echo '%~' ne fonctionne pas.

Comment fait-on pour récupérer la valeur de %~ ?

J’ai trouvé mon bonheur ici pour n’afficher que les 30 derniers
caractères d'une chaîne :

http://mywiki.wooledge.org/BashFAQ/073

echo ${string: -30}


Il faut regarder la partie sur le prompt dans le man zshmisc(1)


En effet c'est bien expliqué :

Les deux derniers éléments du path : %2~

Merci.

--
Benoit



Re: Prompt zsh

2019-11-28 Par sujet Marc Chantreux
salut,

> Je recherche une façon de modifier la partie : %~ de mon PROMPT zsh
> pour réduire sa longueur quand il prend trop de place dans la ligne de
> commande.
> 
> echo '%~' ne fonctionne pas.

tu peux déclencher l'expansion de % de deux façons:

* soit avec le flag -P de print (man zshbuiltins) que tu peux coupler
  avec -v pour écrire dans une variable:

print -P 'direct: %~'# direct: ~
print -v PS1 'via PS1: %~'
print $PS1   # via PS1: %~

* soit avec l'expansion modifier % (man zshexpn) que tu peux coupler
  avec (l::) ou (r::) qui te permette de

  cd /tmp
  print ${(r:3:%):-%~ >}  # /tm

  cd /tmp
  print "${(r:20::_:%):-%~}>" # /tmp __>

> J’ai trouvé mon bonheur ici pour n’afficher que les 30 derniers
> caractères d'une chaîne:
> http://mywiki.wooledge.org/BashFAQ/073

Hors des syntaxes historiques/standard, bash et zsh ont des syntaxes
très différentes. Ayant tourné le dos à bash il y a presque 20 ans,
je ne pourrait pas comparer objectivement mais à l'époque, il n'y avait
pas de discution possible sur la supériorité de zsh à mes yeux

cordialement,
marc



Re: Prompt zsh

2019-11-28 Par sujet Erwan David
Le 28/11/2019 à 13:57, benoit...@ouvaton.org a écrit :
> Bonjour à toutes et tous,
> 
> Je recherche une façon de modifier la partie : %~ de mon PROMPT zsh
> pour réduire sa longueur quand il prend trop de place dans la ligne de
> commande.
> 
> echo '%~' ne fonctionne pas.
> 
> Comment fait-on pour récupérer la valeur de %~ ?
> 
> J’ai trouvé mon bonheur ici pour n’afficher que les 30 derniers
> caractères d'une chaîne :
> 
> http://mywiki.wooledge.org/BashFAQ/073
> 
> echo ${string: -30}
> 
Il faut regarder la partie sur le prompt dans le man zshmisc(1)




Prompt zsh

2019-11-28 Par sujet benoitlst

Bonjour à toutes et tous,

Je recherche une façon de modifier la partie : %~ de mon PROMPT zsh
pour réduire sa longueur quand il prend trop de place dans la ligne de
commande.

echo '%~' ne fonctionne pas.

Comment fait-on pour récupérer la valeur de %~ ?

J’ai trouvé mon bonheur ici pour n’afficher que les 30 derniers
caractères d'une chaîne :

http://mywiki.wooledge.org/BashFAQ/073

echo ${string: -30}

avec pwd -L

Ces deux lignes contractées, ça donne :
echo ${"$(pwd -L)": -30}

Le prompt n’est pas réinterprété quand je change de
répertoire en remplaçant  ‘%~’ par
${"$(pwd -L)": -30} :

PROMPT="%n@%m: ${"$(pwd -L)": -30}  %# "

Ceci ne fonctionne pas non plus :
PROMPT="%n@%m: ${"%~": -30}  %# "

D’avance un tout grand merci.

Avec gratitude,
--
Benoit