web-dev-qa-db-fra.com

Que veut dire Visual Studio en normalisant les fins de ligne incohérentes?

Visual Studio me dit parfois:

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

Il me donne ensuite un menu déroulant avec des normes différentes ou quelque chose comme Windows, Mac, Unix et quelques-unes Unicode.

Qu'est-ce que cela signifie et que va-t-il se passer si je clique sur Yes?

232
MetaGuru

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

Normaliser les fins de ligne, c'est simplement s'assurer que tous les caractères de fin de ligne sont cohérents. Cela empêche une ligne de se terminer par \r\n et une autre se terminant par \r ou \n; le premier est la paire d'extrémités de ligne Windows, tandis que les autres sont généralement utilisés pour les fichiers Mac ou Linux.

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

204
Ken White

Certaines lignes se terminent par \n.

Certaines 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.

73
Alex Reitbort

Si vous utilisez Visual Studio 2012:

Allez au menu FichierOptions de sauvegarde avancées → sélectionnez fins de ligne tapez comme Windows (CR LF).

40
pankaj

Pour activer/désactiver l’option, suivez les étapes ci-dessous à partir de men bar:

OutilsOptionsEnvironnementDocumentsVérifier la cohérence des fins de ligne en charge

11
CodingYoshi

Le fichier que vous êtes en train d’éditer a été édité avec un autre éditeur qui n’utilise pas les mêmes fins de ligne, ce qui donne un fichier avec des fins de ligne mixtes.

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

CR, retour chariot
LF, saut de ligne

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

7
monowerker

Le Wikipedia article de nouvelle ligne pourrait vous aider. Voici un extrait:

Les différentes conventions de nouvelle ligne entraînent souvent un affichage incorrect des fichiers texte transférés entre systèmes de types différents. Par exemple, les fichiers provenant d'un système Unix ou Apple Macintosh peuvent apparaître sous la forme d'une seule longue ligne sur certains programmes exécutés 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é sous la forme ^ M, à la fin de chaque ligne ou sous la forme d'un second saut de ligne.

6
Richard Everett

Cela signifie que, par exemple, certaines de vos lignes de texte avec un <Carriage Return><Linefeed> (norme Windows), et d'autres se terminent simplement par un <Linefeed> (norme Unix).

Si vous cliquez sur "oui", la fin de ligne de votre fichier source sera convertie pour avoir le même format.

Cela ne fera aucune différence pour le compilateur (car les fins de lignes ne comptent que de simples espaces), mais cela pourrait avoir une incidence sur d'autres outils (par exemple, le "diff" sur votre système de contrôle de version).

5
ChrisW

Ce n'est pas simplement Visual Studio ... Ce sont tous les outils lisant les fichiers, les compilateurs, les lieurs, etc. qui doivent pouvoir le gérer.

En général (pour le développement de logiciels), nous acceptons le problème de fin de ligne multiplateforme, mais laissons le logiciel de contrôle de version s'en occuper.

4
Peter Y

Lorsque vous copiez quelque chose à partir de Web, vous risquez d’obtenir des fins de ligne incohérentes.
Pour résoudre ce problème, vous pouvez utiliser l'extension "Line Endings Unifier" de Visual studio, qui permet de rendre la fin de ligne cohérente automatiquement lors de l'enregistrement du fichier.

enter image description here

3
Jay Shah

Il existe un complément pour Visual Studio 2008 qui convertit le format de fin de ligne lorsqu'un fichier est enregistré. Vous pouvez le télécharger ici: http://grebulon.com/software/stripem.php

2
grebulon