Visual Studio od czasu do czasu mówi mi:
Zakończenia linii w poniższych plikach nie są spójne. Czy chcesz znormalizować zakończenia linii?
Daje mi to listę różnych standardów lub czegoś takiego, jak Windows, Mac, Unix i kilka Unicode.
Co to oznacza i co się stanie, jeśli kliknę Yes
?
visual-studio
line-endings
MetaGuru
źródło
źródło
git
. Zobacz także: stackoverflow.com/questions/170961/…Odpowiedzi:
Zazwyczaj oznacza to, że masz linie kończące się czymś innym niż para powrotu karetki / linia przesuwania wiersza. Często dzieje się tak, gdy kopiujesz i wklejasz stronę internetową do edytora kodu.
Normalizacja zakończeń linii to po prostu upewnienie się, że wszystkie znaki zakończenia linii są spójne. Zapobiega kończeniu jednej linii,
\r\n
a drugiej kończąc na\r
lub\n
; pierwsza to końcowa para systemu Windows, podczas gdy inne są zwykle używane w plikach Mac lub Linux.Ponieważ rozwijasz się w Visual Studio, oczywiście będziesz chciał wybrać „Windows” z rozwijanego menu. :-)
źródło
Niektóre linie kończą się na
\n
.Niektóre inne linie kończą się na
\r\n
.Visual Studio sugeruje, aby wszystkie linie kończyły się tak samo.
źródło
Jeśli używasz programu Visual Studio 2012:
Przejdź do menu Plik → Zaawansowane opcje zapisu → wybierz Typ zakończenia linii jako Windows (CR LF) .
źródło
Aby włączyć / wyłączyć opcję, wykonaj następujące czynności z paska menu :
Narzędzia → Opcje → Środowisko → Dokumenty → Sprawdź spójne zakończenia linii przy obciążeniu
źródło
Plik, który edytujesz, był edytowany w innym edytorze, który nie używa tych samych zakończeń linii, w wyniku czego powstaje plik z mieszanymi zakończeniami linii.
Znaki ASCII używane jako zakończenia linii to:
CR, Carriage Return
LF, Line Feed
Windows = CRLF
Mac OS 9 lub wcześniejszy = CR
Unix = LF
źródło
Artykuł w nowej linii Wikipedii może ci pomóc. Oto fragment:
źródło
Oznacza to, że na przykład niektóre linie tekstu mają
<Carriage Return><Linefeed>
(standard Windows), a niektóre kończą się tylko<Linefeed>
(standard Unix).Jeśli klikniesz „tak”, linie końca pliku źródłowego zostaną przekonwertowane do tego samego formatu.
Nie spowoduje to żadnej różnicy w kompilatorze (ponieważ końce wierszy liczą się jako zwykłe białe znaki), ale może mieć znaczenie dla innych narzędzi (np. „Diff” w systemie kontroli wersji).
źródło
To nie tylko Visual Studio ... To byłyby wszelkie narzędzia odczytujące pliki, kompilatory, linkery itp., Które musiałyby sobie z tym poradzić.
Zasadniczo (w przypadku opracowywania oprogramowania) akceptujemy wieloplatformowe zakończenie linii, ale oprogramowanie kontroli wersji musi sobie z tym poradzić.
źródło
Podczas kopiowania wklej coś z Internetu, możesz uzyskać niespójne zakończenia linii.
Aby to naprawić, możesz użyć rozszerzenia Visual Studio „Line Endings Unifier”, dzięki któremu zakończenie linii będzie automatycznie spójne podczas zapisywania pliku.
źródło
Istnieje dodatek do programu Visual Studio 2008, który konwertuje format końca linii podczas zapisywania pliku. Możesz go pobrać tutaj: http://grebulon.com/software/stripem.php
źródło