Empêcher Visual Studio de mélanger les fins de ligne dans les fichiers

124

Lors de l'ouverture d'un fichier texte dans Visual Studio 2010, il écrira ensuite mes modifications avec CRLF au lieu du format de fin de ligne du fichier d'origine. Comment puis-je empêcher VS de faire cela? Tout éditeur à moitié décent devrait avoir cette capacité.

Ce qui est pire, c'est que puisque VS a écrit le fichier avec des parties en CRLF, il présentera alors (lors de la réouverture du fichier) une boîte de dialogue me demandant de convertir la fin de la ligne des fichiers.

Brett Ryan
la source
Essayez ce complément: Strip'em
fait
8
Vous voudrez peut-être voter pour ceci: visualstudio.uservoice.com/forums/121579-visual-studio
Jon Watte
1
@JonWatte actuellement en cours de révision au 28 avril 2016
Chris Marisic
2
Je me suis éloigné de .NET ces jours-ci, j'en ai trop marre de la SP qui change apparemment de concentration chaque saison et de négliger des problèmes simples comme ceux-ci. Heureux de les voir enfin le réparer.
Brett Ryan

Réponses:

84

Dans le menu Fichier , choisissez Options d'enregistrement avancées , vous pouvez le contrôler à cet endroit.

Edit: Voici la documentation , vous devriez avoir un fichier ouvert en premier.

GvS
la source
5
Je n'ai pas cet élément de menu sur mon installation ultime VS2010.
Palantir
6
J'ai ce paramètre dans VS2010 Ultimate, mais cette option n'est pas une option persistante globale et n'est valide que pour la session actuelle de l'éditeur. Tout ce que je veux, c'est que VS respecte les fins de ligne des fichiers actuellement ouverts lors de l'édition du fichier.
Brett Ryan
2
Fichier + Enregistrer sous, cliquez sur la flèche du bouton Enregistrer. Même chose mais spécifique au fichier.
Hans Passant
13
Pour ceux qui ne voient pas la commande dans le Filemenu, vous devrez peut - être aller Tools, Customize, Commandsonglet, Menu Bar: File, Add Command..., File, Advanced Save Options..., Ok, Close. Vous devriez maintenant avoir l'option.
davidg
92
Cela ne résout pas réellement le problème, car vous devez choisir cette option CHAQUE FOIS QUE VOUS ÉCONOMISEZ. Cela signifie également que vous devez CHOISIR UNE OPTION DE FIN DE LIGNE à chaque fois que vous enregistrez. Le bon comportement, que tous les autres éditeurs de texte prennent en charge, consiste à détecter le format lors du chargement et à enregistrer dans ce format lors de l'enregistrement. Il n'y a aucun moyen d'obtenir VS2010 pour faire cela AFAICT, et c'est dommage.
Jon Watte
70

Dans Visual Studio 2015 (cela est toujours valable en 2019 pour la même valeur), vérifiez le paramètre:

Outils> Options> Environnement> Documents> Vérifier la cohérence des fins de ligne au chargement

VS2015 vous invitera maintenant à convertir les fins de ligne lorsque vous ouvrez un fichier où elles sont incohérentes, il vous suffit donc d'ouvrir les fichiers, de sélectionner l'option souhaitée dans l'invite et de les enregistrer à nouveau.

Johann Caron
la source
4
Bien que cela puisse être utile maintenant, notez que la question a été étiquetée visual-studio-2010 .
dakab
4
Le problème avec cette option est qu'elle ne vous dit pas quelles fins de ligne sont les plus courantes dans le document, je dois donc d'abord ouvrir le document dans Notepad ++, puis sélectionner uniquement l'option correcte. En outre, c'est un problème de sauvegarde, pas de chargement.
Strategy Thinker
3
Le problème que j'avais est que j'ouvrais des fichiers, avec des fins LF, puis chaque ligne que j'ai modifiée ou ajoutée serait enregistrée avec des fins CR LF. Quand j'ai rouvert le fichier, il me demandait ce que je voulais changer les fins de ligne incohérentes et je choisirais LF et le processus se répéterait. voici comment je l'ai résolu: stackoverflow.com/a/47318778/2701911
FragmentalStew
Cela ne résout pas le problème du copier-coller d'un texte avec des fins de ligne mixtes. Vous devez rouvrir le fichier pour déclencher la vérification.
Andry
22

Avec VS2010 +, il existe une solution de plugin: Line Endings Unifier .

Une fois le plugin installé, vous pouvez cliquer avec le bouton droit sur les fichiers et dossiers dans l'explorateur de solutions et appeler l'élément de menu Unify Line Endings in this file

La configuration à cet effet est disponible via

Outils -> Options -> Unificateur de fin de ligne.

La liste d'extensions de fichier par défaut incluse est assez étroite:

 .cpp; .c; .h; .hpp; .cs; .js; .vb; .txt;

Pourrait vouloir utiliser quelque chose comme:

 .cpp; .c; .h; .hpp; .cs; .js; .vb; .txt; .scss; .coffee; .ts; .jsx; .markdown; .config
engrenage
la source
11
Il s'agit en fait d'un plugin et non installé par défaut.
null
1
@null merci d'avoir souligné que c'est en fait ce que je cherchais. J'ai mis à jour la réponse pour mieux refléter tout cela
Chris Marisic
13

voir http://editorconfig.org et https://docs.microsoft.com/en-us/visualstudio/ide/create-portable-custom-editor-options?view=vs-2017

  1. S'il n'existe pas, ajoutez un nouveau fichier appelé .editorconfig pour votre projet

  2. manipulez la configuration de l'éditeur pour utiliser votre comportement préféré.

Je préfère les espaces aux onglets et CRLF pour tous les fichiers de code.
Voici mon .editorconfig

# http://editorconfig.org
root = true

[*]
indent_style = space
indent_size = 4
end_of_line = crlf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

[*.md]
trim_trailing_whitespace = false

[*.tmpl.html]
indent_size = 4

[*.scss]
indent_size = 2 
Chris Schaller
la source