Impedisci a Visual Studio di mischiare le terminazioni di riga nei file


124

Quando si apre un file di testo in Visual Studio 2010, scriverà le mie modifiche con CRLF invece del formato di fine riga del file originale. Come posso impedire a VS di farlo? Qualsiasi editor decente dovrebbe avere questa capacità.

Quel che è peggio è che dal momento che VS ha scritto il file con porzioni in CRLF, allora (quando si apre di nuovo il file) presenterà una finestra di dialogo che mi chiederà di convertire la fine della riga del file.


Prova questo componente aggiuntivo: Strip'em
rende il


1
@JonWatte attualmente in fase di revisione dal 28 aprile 2016
Chris Marisic

2
In questi giorni mi sono allontanato da .NET, sono troppo stufo della SM che sembra cambiare focus ogni stagione e trascura problemi semplici come questi. Sono contento di vederli finalmente aggiustarlo.
Brett Ryan

Risposte:


84

Nel menu File , scegli Opzioni di salvataggio avanzate , puoi controllarlo lì.

Modifica: ecco la documentazione , dovresti prima avere un file aperto.


5
Non ho questa voce di menu sulla mia installazione finale VS2010.
Palantir

6
Ho questa impostazione in VS2010 Ultimate, tuttavia questa opzione non è un'opzione persistente globale ed è valida solo per la sessione dell'editor corrente. Tutto quello che voglio è che VS rispetti le terminazioni di riga dei file attualmente aperti durante la modifica del file.
Brett Ryan,

2
File + Salva con nome, fare clic sulla freccia sul pulsante Salva. Stessa cosa ma specifica per il file.
Hans Passant

13
Per coloro che non vedono il comando nel Filemenù, potrebbe essere necessario andare a Tools, Customize, Commandsscheda, Menu Bar: File, Add Command..., File, Advanced Save Options..., Ok, Close. Ora dovresti avere l'opzione.
davidg

92
Questo in realtà non risolve il problema, perché devi scegliere quell'opzione OGNI VOLTA CHE RISPARMI. Significa anche che devi SCEGLIERE UN'OPZIONE DI FINE RIGA ogni volta che salvi. Il comportamento corretto, supportato da ogni altro editor di testo disponibile, è rilevare il formato al caricamento e salvare in quel formato al momento del salvataggio. Non c'è modo di convincere VS2010 a farlo AFAICT, ed è un peccato.
Jon Watte

70

In Visual Studio 2015 (questo vale ancora nel 2019 per lo stesso valore), controlla l'impostazione:

Strumenti> Opzioni> Ambiente> Documenti> Verifica la coerenza delle terminazioni di riga al caricamento

VS2015 ora ti chiederà di convertire le terminazioni di riga quando apri un file in cui sono incoerenti, quindi tutto ciò che devi fare è aprire i file, selezionare l'opzione desiderata dal prompt e salvarli di nuovo.


4
Anche se questo potrebbe essere utile ora, nota che la domanda è stata contrassegnata con visual-studio-2010 .
dakab

4
Il problema con questa opzione è che non ti dice quali terminazioni di riga sono le più comuni nel documento, quindi devo prima aprire il documento in Notepad ++ e poi selezionare solo l'opzione corretta. Inoltre questo è un problema di salvataggio, non di caricamento.
Strategia Thinker

3
Il problema che avevo è che stavo aprendo file, con finali LF, e quindi ogni riga che ho modificato o aggiunto sarebbe stata salvata con finali CR LF. Quando ho aperto di nuovo il file, mi chiedeva in cosa volevo modificare le terminazioni di riga incoerenti e avrei scelto LF e quindi il processo si sarebbe ripetuto. ecco come l'ho risolto: stackoverflow.com/a/47318778/2701911
FragmentalStew

Ciò non risolve il problema relativo al copia-incolla di un testo con finali di riga misti. Devi riaprire il file per attivare il controllo.
Andry

22

Con VS2010 + esiste una soluzione plug-in: Line Endings Unifier .

Con il plug-in installato è possibile fare clic con il pulsante destro del mouse su file e cartelle in Esplora soluzioni e richiamare la voce di menu Unify Line Endings in this file

La configurazione per questo è disponibile tramite

Strumenti -> Opzioni -> Unificatore delle terminazioni di riga.

L'elenco delle estensioni di file predefinito incluso è piuttosto ristretto:

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

Potrei voler usare qualcosa come:

 .cpp; .c; .h; .hpp; .cs; .js; .vb; .txt; .scss; .coffee; .ts; .jsx; .markdown; .config

11
Questo è in realtà un plugin e non è installato di default.
null

1
@null grazie per aver sottolineato che, questo è effettivamente quello che stavo cercando. Ho aggiornato la risposta per riflettere meglio tutto questo
Chris Marisic

13

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

  1. Se non esiste, aggiungi un nuovo file chiamato .editorconfig per il tuo progetto

  2. manipola la configurazione dell'editor per utilizzare il tuo comportamento preferito.

Preferisco gli spazi alle tabulazioni e CRLF per tutti i file di codice.
Ecco il mio .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 
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.