Не дозволяйте Visual Studio змішувати закінчення рядків у файлах


124

Під час відкриття текстового файлу у Visual Studio 2010 він записуватиме мої зміни за допомогою CRLF замість формату рядка, що закінчується вихідним файлом. Як я можу зупинити VS від цього? Будь-який наполовину гідний редактор повинен мати таку можливість.

Найгірше те, що оскільки VS записав файл з частинами в CRLF, то він (при відкритті файлу ще раз) відкриє діалогове вікно із проханням перетворити рядок файлів у закінчення.


Спробуйте надбудову: Strip'em
робить

8
Ви можете проголосувати за це: visualstudio.uservoice.com/forums/121579-visual-studio/…
Jon

1
@JonWatte наразі переглядається станом на 28 квітня 2016 р.
Кріс Марісіч

2
Я відійшов від .NET в ці дні, надто втомився від MS, здавалося б, змінюючи фокус кожного сезону і нехтуючи простими проблемами, такими як ці. Радий бачити, як вони остаточно це виправили.
Бретт Райан

Відповіді:


84

У меню Файл виберіть Додаткові параметри збереження , ви можете ним керувати там.

Редагувати: Ось документація , вам слід спочатку відкрити файл.


5
У мене немає пункту меню в остаточній установці VS2010.
Палантір

6
У мене є такий параметр у VS2010 Ultimate, однак цей параметр не є глобальним стійким варіантом і діє лише для поточного сеансу редактора. Все, що я хочу, - щоб VS поважав поточні відкриті файли-закінчення файлів під час редагування файлу.
Бретт Райан

2
Файл + Зберегти як, натисніть стрілку на кнопку Зберегти. Те саме, але специфічне для файлу.
Ганс Пасант

13
Для тих, хто не бачить команду в Fileменю, можливо , доведеться піти Tools, Customize, Commandsзакладка, Menu Bar: File, Add Command..., File, Advanced Save Options..., Ok, Close. Тепер у вас повинна бути така опція.
davidg

92
Це насправді не вирішує проблему, тому що ви повинні вибрати цей варіант КОЖНЕ ЧАС, ЩО ВИ ЗЕБАЄТЕ. Це також означає, що ви повинні ОБРАЗУВАТИ ОПЦІЮ ЗАКОНЧАННЯ ЛІНІЇ щоразу, коли ви економите. Правильна поведінка, яку підтримує кожен інший текстовий редактор, - це виявити формат під час завантаження та зберегти у такому форматі на збереженні. Немає способу змусити VS2010 зробити цей АФАЙКТ, і це прикро.
Джон Ватте

70

У Visual Studio 2015 (це все ще зберігається у 2019 році для того ж значення), перевірте налаштування:

Інструменти> Опції> Навколишнє середовище> Документи> Перевірте відповідність закінчень рядків під час завантаження

Тепер VS2015 запропонує вам конвертувати закінчення рядків, коли ви відкриєте файл, де вони непослідовні, тому все, що вам потрібно зробити, - це відкрити файли, вибрати потрібний варіант із підказки та зберегти їх знову.


4
Хоча це може бути корисним зараз, зауважте, що питання було позначене візуально-студією-2010 .
дакаб

4
Проблема з цим параметром полягає в тому, що він не говорить вам, які закінчення рядків є найпоширенішими в документі, тому я повинен спершу відкрити документ у «Блокноті ++», а потім лише вибрати правильний варіант. Крім того, це проблема економії, а не завантаження.
Стратегічний мислитель

3
Проблема, яку я мав, полягає в тому, що я відкривав файли з закінченнями LF, і тоді кожен рядок, який я редагував або додав, буде збережений із закінченнями CR LF. Коли я знову відкрив файл, він запитав би мене, на що я хочу змінити невідповідні закінчення рядків, і я обрав би LF, і тоді процес повториться. ось як я це вирішив: stackoverflow.com/a/47318778/2701911
FragmentalStew

Це не вирішує питання щодо копіювання тексту із змішаними закінченнями рядків. Вам потрібно знову відкрити файл, щоб запустити перевірку.
Ендрі

22

З VS2010 + існує плагінове рішення: Уніфікатор закінчень рядків .

За допомогою встановленого плагіна ви можете клацнути правою кнопкою миші файли та папки в Провіднику рішень та викликати пункт меню Unify Line Endings in this file

Конфігурація для цього доступна через

Інструменти -> Параметри -> Уніфікатор закінчень рядків.

Список розширень файлів за замовчуванням, який включений, досить вузький:

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

Ви можете використовувати щось на кшталт:

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

11
Це насправді плагін і не встановлений за замовчуванням.
null

1
@null дякую, що вказали, що це саме те, що я шукав. Я оновив відповідь, щоб краще відобразити все це
Кріс Марісіч

12

див. http://editorconfig.org та https://docs.microsoft.com/en-us/visualstudio/ide/create-portable-custom-editor-options?view=vs-2017

  1. Якщо його не існує, додайте новий файл під назвою .editorconfig для свого проекту

  2. маніпулювати конфігурацією редактора для використання бажаної поведінки.

Я віддаю перевагу пробіли над вкладками та CRLF для всіх файлів коду.
Ось моя .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 
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.