Re: Ligne vide (etait croneries)
On Wednesday 28 March 2001 10:40, cmartin@univ-brest.fr wrote:
> Bonjour,
> Le monsieur qui t'as parle de ligne vide utilise probablement emacs. En
> matiere de ligne, emacs est un mauvais editeur. En effet, sous unix,
> normalement une ligne est *terminee* par un retour chariot (\n), Il se
> trouve --vu la presentation a l'ecran que fait emacs-- qu'emacs
> considere que les lignes sont *separees* par des retour chariot.
>
D'accord pour le comportement d'emacs, qui me paraît le plus "naturel" (ne
rajoute pas dans le dos de l'utilisateur de caractères spéciaux). Je constate
que vi exige de tout fichier qu'ils se termine par un \n et qu'il le rajoute
s'il est absent.
C'est très bien pour éditer un crontab mais... connaissez-vous des pointeurs
vers la définition de la 'ligne UNIX', hors le discours de vi ? Je vois
plutôt le comportement de vi comme un pense-bête pour les
admins-qui-oublient-de-coller-un-<eol>-avant-l'<eof> dans leurs fichiers de
configuration. Me trompé-je ?
> Donc
> unix : toutes les lignes y compris la derniere ont un retour chariot.
> emacs : toutes les lignes sauf la derniere ont un retour chariot.
Disons : fin de ligne = <eol> | <eof>.
Cette histoire de ligne, c'est juste des conventions pour les fichiers texte.
Une question de présentation. Je croyais qu'en UNIXland, il n' y a pas de
'fichier texte' ou de 'fichier binaire', contrairement au monde merveilleux
de DOS, mais je m'égare peut-être.
Je veux dire : si j'ouvre avec vi un flot binaire, et que malencontreusement
je l'enregistre, il me colle automatiquement un <eol> manquant avant l'<eof> ?
>
> De la, la necessite d'ajouter *sous emacs* ce qui apparait comme une
> ligne vide, mais ce qui en fait n'est que la terminaison correcte de la
> derniere ligne du fichier.
>
> Chaque outil, demon, etc... suivant la maniere dont il analyse les
> fichiers se contente ou non d'une derniere ligne incorrecte, et peut
> parfaitement ignorer une derniere-ligne-qui-n'en-est-pas-une-puisqu'il
> lui-manque-un-retour-chariot.
>
> Les utilisateur de vi, par exemple, ont deja remarque ce genre de
> message :
> partial last line (derniere ligne partielle)
> ou [noeol] ([pasdefindeligne])
>
> Christophe
> --
> char*p="[)1++++++11+(QI1)9191991)9)1)(II1)919Y91)9)1)(AK+9;991+3*(9I1*IY991
>)Q1\
> )(1I1))A91991)Q1)(+)1)1++9;)Q1+(";main(_){while(*p){for(_=*p-32>>3;_;--_)
> putchar(' ');if(!(_=*p++-32&7))putchar('\n');else while(_--)printf("_/");}}
Reply to: