web-dev-qa-db-fra.com

Nouvelles lignes Eclipse et Windows

J'ai dû déplacer mon espace de travail Eclipse de Linux vers Windows lorsque mon ordinateur de bureau est tombé en panne. Une semaine plus tard, je le recopie sous Linux, code heureusement, commets à CVS. Et hélas, les nouvelles lignes de Windows ont pollué de nombreux fichiers, aussi CVS diff extrait-t-il l'intégralité du fichier, même lorsque j'ai modifié une ligne ou deux!

Je pourrais préparer un script, mais je me demande si cela va gâcher mes fichiers de projet Eclipse.

176
Vasu

Comme mentionné ici et ici :

Définissez le codage du fichier sur UTF-8 et les fins de ligne pour les nouveaux fichiers sous Unix, afin que les fichiers texte soient enregistrés dans un format non spécifique au système d'exploitation Windows et plus facilement partagés sur des bureaux de développeurs hétérogènes:

  • Accédez aux préférences de l'espace de travail (Général: Espace de travail)
  • Modifiez le codage du fichier texte en UTF-8
  • Définissez le séparateur de la ligne de nouveau fichier texte sur Autre et choisissez Unix dans la liste de sélection.

alt text

  • Remarque: pour convertir les fins de ligne d’un fichier existant, ouvrez-le dans Eclipse et choisissez File : Convert Line Delimiters to : Unix

Astuce : Vous pouvez facilement convertir un fichier existant en le sélectionnant ensuite dans l’explorateur de packages, puis en accédant à l’entrée de menu File : Convert Line Delimiters to : Unix

349
VonC

J'ai eu le même, les fichiers pollués Eclipse, même avec un changement de ligne. Paramètres de git d'Eclipse -> Ajouter une entrée: Clé: Valeurs core.autocrlf: true

enter image description here

enter image description here

11
user988282

Il existe un utilitaire bash pratique - dos2unix - qui est un convertisseur de format de fichier texte DOS/MAC vers UNIX, qui, s'il n'est pas déjà installé sur votre distribution, devrait pouvoir être installé facilement via un gestionnaire de paquets. page de manuel de dos2unix

8
Ben Hayden

En plus des solutions Eclipse et de l’outil mentionné dans autre réponse , envisagez retourner . Il peut "basculer" dans les deux sens entre les sauts de ligne normaux et Windows, et fait des choses agréables comme préserver l'horodatage du fichier et d'autres statistiques.

Vous pouvez l'utiliser comme ceci pour résoudre votre problème:

find . -type f -not -path './.git/*' -exec flip -u {} \;

(J'ai mis une clause pour ignorer votre répertoire .git, au cas où vous utiliseriez git, mais puisque flip ignore les fichiers binaires par défaut, vous n'en auriez peut-être pas besoin.)

7
Michael Scheper

Pour supprimer récursivement les retours chariot (\r) à partir des fichiers CVS/* de tous les répertoires enfants, exécutez les opérations suivantes dans un shell Unix:

find ./ -wholename "\*CVS/[RE]\*" -exec dos2unix -q -o {} \;
3
Gabe

Vous pouvez essayer. Le problème est que Windows insère un retour à la ligne ainsi qu’un saut de ligne lorsqu’une nouvelle ligne est donnée. Les systèmes Unix insèrent simplement un saut de ligne. Ainsi, le caractère de retour chariot supplémentaire peut être la raison pour laquelle votre Eclipse se mêle aux nouvelles lignes.

Prenez un ou deux fichiers de votre projet et convertissez-les. Vous pouvez utiliser Notepad ++ pour le faire. Ouvrez simplement le fichier, allez dans Format-> Convertir en Unix (lorsque vous utilisez Windows).

Sous Linux, essayez ceci sur une ligne de commande:

sed 's/$'"/`echo \\\r`/" yourfile.Java > output.Java
3
Ham Vocke