OVH Cloud OVH Cloud

zsh + perl

7 réponses
Avatar
Solignac
Bonjour,

ne sachant pas exactement de quel domaine ma question relève (ma propre
bêtise, la configuration, ...) je me risque à la poser ici:

zsh$ perl -e '$t="toto" ; print $t ;'
zsh$

zsh$ perl -e '$t="toto" ; print "$t\n" ;'
toto
zsh$

Mais:

bash$ perl -e '$t="toto" ; print $t ;'
totobash$

Y-a-t'il quelque chose que j'ai loupé dans la configuration de zsh qui
empêche d'afficher toute sortie de print ne comprenant pas de caractère
'\n'? J'ai essayé avec les versions 'stable' et 'unstable' de zsh de chez
Debian, un problème de config serait donc plus probable.

Merci de m'éclairer de vos lumières,

\bye

Julien

--
Emacs, le premier editeur qui se passe d'utilisateur.

7 réponses

Avatar
Benoit Izac
Bonjour,

le 07/07/2004 à 16:05, Solignac a écrit
dans le message :

ne sachant pas exactement de quel domaine ma question relève (ma propre
bêtise, la configuration, ...) je me risque à la poser ici:

zsh$ perl -e '$t="toto" ; print $t ;'
zsh$

zsh$ perl -e '$t="toto" ; print "$tn" ;'
toto
zsh$

Mais:

bash$ perl -e '$t="toto" ; print $t ;'
totobash$

Y-a-t'il quelque chose que j'ai loupé dans la configuration de zsh qui
empêche d'afficher toute sortie de print ne comprenant pas de caractère
'n'? J'ai essayé avec les versions 'stable' et 'unstable' de zsh de chez
Debian, un problème de config serait donc plus probable.


unsetopt promptcr

--
Benoit Izac

Avatar
Stephane Chazelas
2004-07-07, 16:05(+02), Solignac:
[...]
ne sachant pas exactement de quel domaine ma question relève (ma propre
bêtise, la configuration, ...) je me risque à la poser ici:

zsh$ perl -e '$t="toto" ; print $t ;'
zsh$


zsh affiche son prompt au debut de la ligne, donc ecrase ce
qu'il y a. Voir l'option "-l" de perl et voir l'option
PROMPT_CR et la fonction "promptnl" de zsh.

("setopt nopromptcr" pour ne pas ecraser le debut de la ligne
(mais le prompt va deconner), ou "autoload -U promptnl;
precmd(){promptnl}" pour ajouter un "n" quand il manque dans
l'output de la commande precedente).

--
Stephane

Avatar
Solignac
Benoit Izac wrote:

zsh$ perl -e '$t="toto" ; print $t ;'
zsh$

Y-a-t'il quelque chose que j'ai loupé dans la configuration de zsh qui
empêche d'afficher toute sortie de print ne comprenant pas de caractère
'n'? J'ai essayé avec les versions 'stable' et 'unstable' de zsh de chez
Debian, un problème de config serait donc plus probable.


unsetopt promptcr


Merci, that's fine; mais quid du risque de mauvais fonctionnement du
prompt évoqué par Stéphane C.?

bye

Julien

--
« Ce n'est pas parce que l'homme a soif d'amour qu'il doit se jeter sur la
première gourde. » -+- Pierre Desproges, aphorismes -+-


Avatar
Benoit Izac
Bonjour,

le 07/07/2004 à 16:32, Stephane Chazelas a écrit
dans le message :

("setopt nopromptcr" pour ne pas ecraser le debut de la ligne
(mais le prompt va deconner) [...]


En quoi il va dé****er ?

--
Benoit Izac

Avatar
Stephane Chazelas
2004-07-07, 17:17(+02), Benoit Izac:
le 07/07/2004 à 16:32, Stephane Chazelas a écrit
dans le message :

("setopt nopromptcr" pour ne pas ecraser le debut de la ligne
(mais le prompt va deconner) [...]


En quoi il va dé****er ?


Essaie:

$ RPS1=%T
$ setopt nopromptcr notransientrprompt 16:25
$ print -n foo 16:25
foo$ 16
:25

Par exemple.

J'aurais plutot du dire l'editeur de ligne que le prompt.

Note que tu as le meme probleme avec bash. Essayer de taper une
ligne plus grande que l'ecran apres un "echo -n blablabla" et de
revenir en arriere.

--
Stephane


Avatar
Benoit Izac
Bonjour,

le 07/07/2004 à 17:31, Stephane Chazelas a écrit
dans le message :

("setopt nopromptcr" pour ne pas ecraser le debut de la ligne
(mais le prompt va deconner) [...]


En quoi il va dé****er ?


Essaie:

$ RPS1=%T
$ setopt nopromptcr notransientrprompt 16:25
$ print -n foo 16:25
foo$ 16
:25

Par exemple.

J'aurais plutot du dire l'editeur de ligne que le prompt.

Note que tu as le meme probleme avec bash. Essayer de taper une
ligne plus grande que l'ecran apres un "echo -n blablabla" et de
revenir en arriere.


Effectivement. D'un autre coté avec promptnl, tu ne vois pas lorsque tu
as fait une erreur genre :
printf '%s' bla

--
Benoit Izac



Avatar
Vincent Lefevre
Dans l'article ,
Stephane Chazelas écrit:

("setopt nopromptcr" pour ne pas ecraser le debut de la ligne
(mais le prompt va deconner), ou "autoload -U promptnl;
precmd(){promptnl}" pour ajouter un "n" quand il manque dans
l'output de la commande precedente).


Du temps où j'utilisais promptnl (quand ce n'était pas encore une
fonction officielle), les caractères tapés au clavier avant l'affichage
du prompt (ou quelque chose du genre) étaient ignorés, ce qui est
embêtant quand on a tendance à vouloir prendre de l'avance. Du coup,
j'avais fini par ne plus l'utiliser.

--
Vincent Lefèvre - Web: <http://www.vinc17.org/>
100% validated (X)HTML - Acorn / RISC OS / ARM, free software, YP17,
Championnat International des Jeux Mathématiques et Logiques, etc.
Work: CR INRIA - computer arithmetic / SPACES project at LORIA