Evite que Visual Studio mezcle finales de línea en archivos

123

Al abrir un archivo basado en texto en Visual Studio 2010, escribirá mis ediciones con CRLF en lugar del formato de final de línea del archivo original. ¿Cómo puedo evitar que VS haga esto? Cualquier editor medio decente debería tener esta capacidad.

Lo peor es que, dado que VS escribió el archivo con partes en CRLF, entonces (al abrir el archivo nuevamente) presentará un cuadro de diálogo pidiéndome que convierta el final de la línea de archivos.

Brett Ryan
fuente
Pruebe este complemento: Strip'em
hace el
8
Es posible que desee votar por esto: visualstudio.uservoice.com/forums/121579-visual-studio/…
Jon Watte
1
@JonWatte actualmente bajo revisión a partir del 28 de abril de 2016
Chris Marisic
2
Me he alejado de .NET en estos días, me harté demasiado de que la EM aparentemente cambie de enfoque cada temporada y descuide problemas simples como estos. Me alegra ver que finalmente lo arreglan.
Brett Ryan

Respuestas:

84

En el menú Archivo , elija Opciones de guardado avanzadas , puede controlarlo allí.

Editar: Aquí está la documentación , primero debe tener un archivo abierto.

GvS
fuente
55
No tengo este elemento de menú en mi instalación definitiva de VS2010.
Palantir
66
Tengo esta configuración en VS2010 Ultimate, sin embargo, esta opción no es una opción global persistente y solo es válida para la sesión actual del editor. Todo lo que quiero es que VS respete los finales de línea de los archivos actualmente abiertos al editar el archivo.
Brett Ryan el
2
Archivo + Guardar como, haga clic en la flecha en el botón Guardar. Lo mismo pero específico para el archivo.
Hans Passant
13
Para aquellos que no ven el comando en el Filemenú, puede que tenga que ir a Tools, Customize, Commandspestaña, Menu Bar: File, Add Command..., File, Advanced Save Options..., Ok, Close. Ahora deberías tener la opción.
davidg
92
En realidad, esto no resuelve el problema, ya que debe elegir esa opción CADA VEZ QUE AHORRE. También significa que debe ELEGIR UNA OPCIÓN DE FINALIZACIÓN DE LÍNEA cada vez que guarde. El comportamiento correcto, que admite cualquier otro editor de texto, es detectar el formato al cargar y guardar en ese formato al guardar. No hay forma de que VS2010 haga eso AFAICT, y eso es una pena.
Jon Watte
70

En Visual Studio 2015 (esto aún se mantiene en 2019 por el mismo valor), verifique la configuración:

Herramientas> Opciones> Medio ambiente> Documentos> Verificar terminaciones de línea consistentes en carga

VS2015 ahora le pedirá que convierta los finales de línea cuando abra un archivo donde no sean consistentes, por lo que todo lo que necesita hacer es abrir los archivos, seleccionar la opción deseada en el mensaje y guardarlos nuevamente.

Johann Caron
fuente
44
Si bien esto podría ser útil ahora, tenga en cuenta que la pregunta fue etiquetada visual-studio-2010 .
dakab
44
El problema con esta opción es que no le dice qué terminaciones de línea son las más comunes en el documento, por lo que primero tengo que abrir el documento en Notepad ++ y luego solo seleccionar la opción correcta. Además, este es un problema de ahorro, no de carga.
Strategy Thinker
3
El problema que tenía es que estaba abriendo archivos, con terminaciones LF, y luego cada línea que edité o agregué se guardaría con terminaciones CR LF. Cuando volví a abrir el archivo, me preguntaba a qué quería cambiar las terminaciones de línea inconsistentes y elegiría LF y luego el proceso se repetiría. así es como lo resolví: stackoverflow.com/a/47318778/2701911
FragmentalStew
Eso no resuelve el problema al copiar y pegar un texto con terminaciones de línea mixtas. Debe volver a abrir el archivo para activar la verificación.
Andry
22

Con VS2010 + hay una solución de complemento: Line Endings Unifier .

Con el complemento instalado, puede hacer clic con el botón derecho en los archivos y carpetas en el explorador de soluciones e invocar el elemento del menú Unify Line Endings in this file

La configuración para esto está disponible a través de

Herramientas -> Opciones -> Unificador de terminaciones de línea.

La lista de extensiones de archivo predeterminada que se incluye es bastante estrecha:

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

Podría querer usar algo como:

 .cpp; .c; .h; .hpp; .cs; .js; .vb; .txt; .scss; .coffee; .ts; .jsx; .markdown; .config
gearsin
fuente
11
Esto es realmente un complemento y no está instalado por defecto.
nulo
1
@ null gracias por señalar que, esto es realmente lo que estaba buscando.
Actualicé
12

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

  1. Si no existe, agregue un nuevo archivo llamado .editorconfig para su proyecto

  2. manipule la configuración del editor para usar su comportamiento preferido.

Prefiero espacios sobre pestañas y CRLF para todos los archivos de código.
Aquí está mi .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
fuente