Zatrzymaj program Visual Studio przed mieszaniem zakończeń linii w plikach

125

Podczas otwierania pliku tekstowego w programie Visual Studio 2010 moje zmiany zostaną zapisane za pomocą CRLF zamiast formatu końca wiersza oryginalnego pliku. Jak mogę powstrzymać VS przed zrobieniem tego? Każdy przyzwoity redaktor powinien mieć taką możliwość.

Co gorsza, ponieważ VS napisał plik z fragmentami w CRLF, wtedy (po ponownym otwarciu pliku) wyświetli okno dialogowe z prośbą o konwersję końcówek linii plików.

Brett Ryan
źródło
Spróbuj tego dodatku: Strip'em
sprawia, że
8
Możesz zagłosować na to: visualstudio.uservoice.com/forums/121579-visual-studio/ ...
Jon Watte.
1
@JonWatte obecnie w trakcie sprawdzania od 28 kwietnia 2016 r.
Chris Marisic
2
W dzisiejszych czasach odszedłem od .NET i miałem już dość tego, że stwardnienie rozsiane zmienia się co sezon i zaniedbuje proste problemy, takie jak te. Cieszę się, że w końcu to naprawiają.
Brett Ryan

Odpowiedzi:

84

W menu Plik wybierz Zaawansowane opcje zapisywania , możesz nim sterować.

Edycja: oto dokumentacja , najpierw powinieneś otworzyć plik.

GvS
źródło
5
Nie mam tego elementu menu w mojej ostatecznej instalacji VS2010.
Palantir
6
Mam to ustawienie w VS2010 Ultimate, jednak ta opcja nie jest globalną trwałą opcją i jest ważna tylko dla bieżącej sesji edytora. Chcę tylko, aby VS przestrzegał zakończeń linii aktualnie otwartych plików podczas edycji pliku.
Brett Ryan,
2
Plik + Zapisz jako, kliknij strzałkę na przycisku Zapisz. To samo, ale specyficzne dla pliku.
Hans Passant
13
Dla tych, którzy nie widzą polecenie w Filemenu, może być konieczne, aby przejść do Tools, Customize, Commandszakładka Menu Bar: File, Add Command..., File, Advanced Save Options..., Ok, Close. Teraz powinieneś mieć możliwość.
davidg
92
To właściwie nie rozwiązuje problemu, ponieważ musisz wybierać tę opcję ZA KAŻDYM RAZEM. Oznacza to również, że za każdym razem, gdy oszczędzasz, musisz WYBRAĆ OPCJĘ ZAKOŃCZENIA LINII. Właściwym zachowaniem, które obsługuje każdy inny edytor tekstu, jest wykrywanie formatu podczas ładowania i zapisywanie w tym formacie podczas zapisywania. Nie ma sposobu, aby VS2010 zrobił to AFAICT, a szkoda.
Jon Watte,
70

W programie Visual Studio 2015 (nadal obowiązuje w 2019 dla tej samej wartości), sprawdź ustawienie:

Narzędzia> Opcje> Środowisko> Dokumenty> Sprawdź spójne zakończenia linii podczas ładowania

VS2015 wyświetli teraz monit o przekonwertowanie zakończeń linii po otwarciu pliku, w którym są one niespójne, więc wszystko, co musisz zrobić, to otworzyć pliki, wybrać żądaną opcję z monitu i zapisać je ponownie.

Johann Caron
źródło
4
Chociaż może to być teraz pomocne, zwróć uwagę, że pytanie zostało oznaczone tagiem visual-studio-2010 .
Dakab
4
Problem z tą opcją polega na tym, że nie mówi ona, które zakończenia linii są najczęstsze w dokumencie, więc najpierw muszę otworzyć dokument w Notepad ++, a następnie wybrać tylko odpowiednią opcję. Poza tym jest to problem z oszczędzaniem, a nie z ładowaniem.
Myśliciel strategiczny
3
Problem, który miałem, polegał na tym, że otwierałem pliki z zakończeniami LF, a następnie każda edytowana lub dodawana linia była zapisywana z zakończeniami CR LF. Kiedy ponownie otworzyłem plik, pytał mnie, na co chcę zmienić niespójne zakończenia linii, i wybierałem LF, a następnie proces się powtarzał. oto jak to rozwiązałem: stackoverflow.com/a/47318778/2701911
FragmentalStew
Nie rozwiązuje to problemu z kopiowaniem i wklejaniem tekstu z mieszanymi zakończeniami linii. Musisz ponownie otworzyć plik, aby uruchomić sprawdzanie.
Andry,
22

W VS2010 + jest rozwiązanie typu plugin: Line Endings Unifier .

Po zainstalowaniu wtyczki możesz kliknąć pliki i foldery prawym przyciskiem myszy w eksploratorze rozwiązań i wywołać element menu Unify Line Endings in this file

Konfiguracja jest dostępna za pośrednictwem

Narzędzia -> Opcje -> Unifier zakończeń linii.

Domyślna lista rozszerzeń plików, która jest dołączona, jest dość wąska:

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

Może chcesz użyć czegoś takiego:

 .cpp; .c; .h; .hpp; .cs; .js; .vb; .txt; .scss; .coffee; .ts; .jsx; .markdown; .config
gearsin
źródło
11
W rzeczywistości jest to wtyczka i nie jest instalowana domyślnie.
zerowy
1
@null dzięki za wskazanie, że to jest to, czego szukałem. Zaktualizowałem odpowiedź, aby lepiej odzwierciedlała to wszystko
Chris Marisic
14

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

  1. Jeśli nie istnieje, dodaj do projektu nowy plik o nazwie .editorconfig

  2. manipuluj konfiguracją edytora, aby używać preferowanego zachowania.

Preferuję spacje nad tabulatorami i CRLF dla wszystkich plików kodu.
Oto mój plik .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
źródło