261 votes

Que signifie Visual Studio par normaliser les sauts de ligne inconsistants ?

Visual Studio me dit parfois :

Les fins de ligne des fichiers suivants ne sont pas cohérentes. Voulez-vous normaliser les fins de ligne ?

Ensuite, il me propose un menu déroulant avec différents standards ou quelque chose comme ça, tels que Windows, Mac, Unix, et quelques-uns en Unicode.

Que cela signifie-t-il et que va-t-il se passer si je clique sur Oui ?

0 votes

Visual Studio me montre ce même message, mais le "fichier" auquel il fait référence est en fait un dossier! Qu'est-ce que cela signifie ?!

0 votes

J'ai créé un petit utilitaire pour le faire sur un répertoire entier ou de manière récursive à travers un ensemble de répertoires pour tous les fichiers d'une extension particulière (comme *.c ou *.h), bien que j'utilise Delphi, l'utilitaire fonctionne pour tous les fichiers source Windows. Code source inclus ainsi que binaire (exe). Il signalera quelles lignes contiennent des sauts de ligne supplémentaires (c'est-à-dire des retours chariot manquants) ou des retours chariot supplémentaires (c'est-à-dire des sauts de ligne manquants). docs.google.com/file/d/0B07SrKpE8ErmbHZ1SWkxT3RLczA/…

2 votes

Peut être causé par git. Voir aussi : stackoverflow.com/questions/170961/…

230voto

Ken White Points 73213

Cela signifie généralement que vous avez des lignes se terminant par autre chose qu'une paire de retour chariot / saut de ligne. Cela arrive souvent lorsque vous copiez-collez depuis une page web dans l'éditeur de code.

Normaliser les fins de ligne consiste simplement à s'assurer que tous les caractères de fin de ligne sont cohérents. Cela évite qu'une ligne se termine par \r\n et une autre par \r ou \n; le premier est la paire de fin de ligne Windows, tandis que les autres sont généralement utilisés pour les fichiers Mac ou Linux.

Comme vous développez dans Visual Studio, vous voudrez évidemment choisir "Windows" dans le menu déroulant. :-)

1 votes

Comment la ligne se termine-t-elle sans retour chariot... ?

24 votes

Alors pourquoi est-ce que Visual Studio se soucie de la façon dont se terminent les lignes, il reconnaît apparemment tous les différents types, il devrait simplement être content et se taire.

54 votes

Ah, mais que se passe-t-il si vous utilisez simplement Visual Studio pour corriger quelque chose qui n'est pas pour Windows ? Une correction rapide sur un utilitaire Linux ou quelque chose en C/C++ direct, et vous ne voulez pas que des CRLFs soient ajoutés ? Attendez-maintenant vous voulez que MS lise dans vos pensées et sache lequel utiliser ? L'équipe de Visual Studio a tort de toute façon, n'est-ce pas ? Pff !

79voto

Alex Reitbort Points 9120

Certaines lignes se terminent par \n.

D'autres lignes se terminent par \r\n.

Visual Studio vous suggère de faire en sorte que toutes les lignes se terminent de la même manière.

41voto

pankaj Points 191

Si vous utilisez Visual Studio 2012 :

Allez dans le menu FichierOptions d'enregistrement avancées → sélectionnez le type de retour à la ligne comme étant Windows (CR LF).

1 votes

Cette option n'apparaît pas dans mon menu Fichier pour ma version Ultimate 10.0.40219.1 SP1Rel de Visual Studio 2010.

1 votes

@DOK, sur mon menu Fichier dans la version Premium de Visual Studio 2010, c'est bien le cas !!

4 votes

Si vous ne voyez pas l'option, vous pouvez personnaliser votre menu de fichier en allant sur Outils->Personnaliser, en allant sur l'onglet des commandes et en ajoutant une commande.

8voto

monowerker Points 2202

Le fichier que vous êtes en train de modifier a été modifié avec un autre éditeur qui n'utilise pas les mêmes fins de ligne, ce qui entraîne un fichier avec des fins de ligne mixtes.

Les caractères ASCII utilisés pour les fins de ligne sont :

CR, Retour chariot
LF, Avancement de ligne

Windows = CRLF
Mac OS 9 ou antérieur = CR
Unix = LF

6voto

Richard Everett Points 18318

Le article sur les sauts de ligne de Wikipedia pourrait vous aider. Voici un extrait :

Les différentes conventions de saut de ligne causent souvent l'affichage incorrect de fichiers texte ayant été transférés entre des systèmes de types différents. Par exemple, les fichiers provenant de systèmes Unix ou Apple Macintosh peuvent apparaître comme une seule longue ligne sur certains programmes s'exécutant sous Microsoft Windows. Inversement, lors de la visualisation d'un fichier provenant d'un ordinateur Windows sur un système Unix, le CR supplémentaire peut être affiché comme ^M ou $ à la fin de chaque ligne ou comme un deuxième saut de ligne.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X