Visual Studio rileverà terminazioni di riga incoerenti all'apertura di un file e c'è un'opzione per correggerlo per quel file specifico. Tuttavia, se voglio correggere i finali di linea per tutti i file in una soluzione, come faccio?Come risolvere terminazioni di linea incoerenti per l'intera soluzione VS?
risposta
provare a fare
Edit > Advanced > Format Document
Poi salvare il documento, a patto che il file non venga modificato da un altro editor esterno, dovrebbe rimanere coerenti. Lo aggiusta per me.
È possibile utilizzare il comando Sostituisci in file e attivare le espressioni regolari. Ad esempio, per sostituire end-of-lines che hanno un singolo linefeed "\ n" (ad esempio, da GitHub, ad esempio) con l'avanzamento standard di ritorno a capo di Windows "\ r \ n", cercare:
([^\r]|^)\n
che indica di creare un gruppo (che è il motivo per cui sono necessarie le parentesi), dove il primo carattere è o non è un ritorno a capo o è l'inizio di una riga. L'inizio del test di linea è in realtà solo all'inizio del file, se capita di iniziare con un "\ n". Seguendo il gruppo è una nuova riga. Quindi, corrisponderai a "; \ n" che ha la fine della riga sbagliata, ma non "\ r \ n" che è la fine della riga corretta.
e sostituirlo con:
$1\r\n
che indica di mantenere il gruppo ($ 1) e quindi sostituire il "\ n" con "\ r \ n".
Sostituire '\ r? \ N' con' \ r \ n' pulirà tutta la riga finali senza coinvolgere l'uso di gruppi di cattura. – kbolino
Aggiornamento: Si prega di fare attenzione. Non eseguire questa operazione a meno che non sia già stato eseguito il commit completo del repository del codice e sia possibile annullare eventuali modifiche non intenzionali. Leggi i commenti qui sotto. Le cose che hanno funzionato per me potrebbero non funzionare per te.
di risposta Ron era davvero vicino a me aiutare, ma ho dovuto fare alcune modifiche per farlo funzionare in Visual Studio.
1) aprire la soluzione che si desidera risolvere questo problema in.
2) assicurarsi che tutte le modifiche in sospeso vengono controllati in perché si sta potenzialmente intenzione di modificare un crapton di documenti e non vogliono annullare l'altra in attesa di modifiche con questo.
3) in ogni stampa documento Ctrl + F per aprire la casella di ricerca, e fare clic sull'icona freccia verso il basso sul lato sinistro per espanderla alla ricerca/scatola di sostituzione.
4) Nella riga superiore, pasta:
([^\r]|^)\n
In linea di fondo, pasta:
\r\n
5) abilitare l'icona .*
a "utilizzare le espressioni regolari" caratteristica.
6) Cambiare il menu a discesa accanto a quella icona in modo che dice "intera soluzione" o "Tutti i documenti aperti" o tutto ciò che è appropriato per la situazione.
7) Fare clic sul pulsante "Sostituisci tutto" che mostra ab -> ac
nell'icona.
E questo è tutto!
Per inciso, avevo bisogno di questo perché i modelli di script di Unity sono tutti realizzati in MonoDevelop in modo che abbiano le terminazioni di linea Mac di default. Ho dovuto modificare tutti i documenti del percorso:
C:\Program Files\Unity\Editor\Data\Resources\ScriptTemplates
Così li ho aperto in Visual Studio, ha seguito il processo di cui ho parlato sopra, usando "tutti i documenti aperti" al punto 6.
Questo metodo ha finito per sostituire punti e virgola alle estremità delle linee. Ma ho ancora usato questa risposta per cercare le aree problematiche in modo che potessi sistemarle manualmente, quindi ti ho votato. – William
Sì, questo rimuove anche alcune parentesi e parentesi per me. (Oltre al punto e virgola sopra menzionato) – bkribbs
Proprio per una risposta più completa, questo ha funzionato meglio per me:
Sostituire
(?<!\r)\n
con
\r\n
in intera soluzione con opzione "regEx".
Questo imposterà la riga corretta che termina in tutti i file che non avevano la linea corretta finita finora. Usa il lookahead negativo per verificare la non esistenza di un \ r davanti a \ n.
Prestare attenzione alle altre soluzioni: modificheranno tutte le righe in tutti i file (ignorando la fine della riga originale) o elimineranno l'ultimo carattere di ogni riga.
essere avvertito, questo metodo non ha funzionato per me.Nel mio caso VS 2017 stava puntando alla linea sbagliata durante il debug, quindi ho provato questo metodo ma senza successo. L'uso della correzione automatica di fine riga fornita da VS ha fatto il trucco. – Rafal
Se avete Cygwin con il pacchetto cygutils installato, è possibile utilizzare questa catena di comandi da shell Cygwin:
unix2dos -idu * cpp | sed -e '//[1-9] [0-9] //' -e 's/[1-9] [0-9] * 0 //' | sed '/ [1-9] [0-9] /! d' | sed -e 's/[1-9] [0-9] //' | xargs unix2dos
(Sostituire il * cpp con qualsiasi carattere jolly è necessario)
Per capire come funziona, il comando unix2dos viene utilizzato per convertire i file, ma solo i file che hanno fine riga incoerenti (ie , una combinazione di UNIX e DOS) devono essere convertiti. L'opzione -idu visualizza il numero di dos e unix di fine riga nel file. Per esempio:
0 491 Acad2S5kDim.cpp
689 0 Acad2S5kPolyline.cpp
0 120 Acad2S5kRaster.cpp
433 12 Acad2S5kXhat.cpp
0 115 AppAuditInfo.cpp
Qui, solo il file Acad2S5kXhat.cpp deve essere convertito. I comandi sed filtrano l'output per produrre un elenco dei soli file che devono essere convertiti e questi vengono quindi elaborati tramite xargs.
- 1. Visual studio "terminazioni di linea incoerenti"
- 2. terminazioni di linea in pitone
- 3. Perforce ha cambiato le terminazioni di linea
- 4. Come posso modificare le terminazioni di linea utilizzate da fputcsv?
- 5. Come sostituire le terminazioni di linea in VIM
- 6. Conversione di terminazioni di linea UNIX Mercurial su Windows
- 7. Flipping delle terminazioni di linea in C++ (o R)
- 8. Come posso configurare npm per utilizzare le terminazioni di linea in stile Windows in package.json?
- 9. Uso di python per scrivere file di testo con terminazioni di linea DOS su linux
- 10. Come posso creare un combinatore di parser in cui le terminazioni di linea sono significative?
- 11. Git core.safecrlf comportamento diverso su file con le stesse terminazioni di linea
- 12. C'è un modo per determinare le terminazioni di linea in un repository git esistente?
- 13. Come assicurarsi che tutti i miei file sorgente rimangano UTF-8 con terminazioni di linea Unix?
- 14. Bash - esecuzione senza problemi di script con terminazioni di linea CRLF
- 15. convertire le terminazioni di linea dos2unix per tutti i file in una directory
- 16. Lotto di terminazioni di riga normalizzate in Visual Studio
- 17. Aggiorna le variabili di ambiente per la soluzione VS aperta
- 18. Python aiuta a leggere il file csv in errore a causa di terminazioni di linea
- 19. Java equivalente al file di soluzione VS
- 20. Fai in modo che Aptana non usi mai le terminazioni di linea di Windows
- 21. Come risolvere utilizzando Unity in una soluzione a più progetti
- 22. come risolvere questo emulatore: ERRORE: sconosciuto Nome pelle soluzione 'WVGA800'
- 23. Come rendere vim: source accetta differenti terminazioni di riga?
- 24. requisiti di valore incoerenti upper_bound e lower_bound
- 25. Come si può iniettare manualmente la soluzione per risolvere i dati all'interno di un controller?
- 26. PhpStorm + Terminazioni di linea GIT che cambiano da LF a CRLF
- 27. Risultati incoerenti con RichTextBox ScrollToCaret
- 28. linea per linea di lavorazione di file, ad anello vs con
- 29. Come risolvere la visualizzazione: blocco in linea su IE6?
- 30. Ingresso linea VBA vs Ingresso
Questo non ha risolto il problema per me. Ha cambiato molti spazi bianchi nel file corrente (oltre le terminazioni di riga) e non ha influito su nessun altro file nella soluzione. – hypehuman
Inoltre non ha risolto per me, (vsc 7.3.2) applica solo la formattazione di origine, (ma non il criterio di fine riga) –