Остановить Visual Studio от смешивания окончаний строк в файлах

125

При открытии текстового файла в Visual Studio 2010 он будет записывать мои изменения с помощью CRLF вместо формата окончания строки исходного файла. Как я могу остановить VS от этого? Такой способностью должен обладать любой полуприличный редактор.

Что еще хуже, поскольку VS написал файл с частями в CRLF, тогда (при повторном открытии файла) появится диалоговое окно с просьбой преобразовать окончание строки файла.

Бретт Райан
источник
Попробуйте надстройку: Strip'em
делает
8
Вы можете проголосовать за это: visualstudio.uservoice.com/forums/121579-visual-studio/…
Джон Уотт
1
@JonWatte находится на рассмотрении по состоянию на 28 апреля 2016 г.
Крис Марисич,
2
В эти дни я отошел от .NET, слишком устал от MS, который, казалось бы, меняет фокус каждый сезон и игнорирует такие простые проблемы, как эти. Рад видеть, что они наконец это исправляют.
Бретт Райан,

Ответы:

84

В меню « Файл» выберите « Дополнительные параметры сохранения» , вы можете управлять им там.

Изменить: здесь документация , сначала вы должны открыть файл.

GvS
источник
5
У меня нет этого пункта меню в моей окончательной установке VS2010.
Palantir
6
У меня есть этот параметр в VS2010 Ultimate, однако этот параметр не является глобальным постоянным параметром и действителен только для текущего сеанса редактора. Все, что я хочу, - это чтобы VS уважал окончание строк открытых в данный момент файлов при редактировании файла.
Бретт Райан
2
Файл + Сохранить как, щелкните стрелку на кнопке Сохранить. То же самое, но относится к файлу.
Hans Passant
13
Для тех, кто не видит команду в Fileменю, возможно , придется пойти Tools, Customize, Commandsзакладка, Menu Bar: File, Add Command..., File, Advanced Save Options..., Ok, Close. Теперь у вас должна быть возможность.
Дэвид
92
На самом деле это не решает проблему, потому что вы должны выбирать эту опцию КАЖДЫЙ РАЗ, КОГДА ВЫ ЭКОНОМИТЕ. Это также означает, что вы должны ВЫБРАТЬ ОПЦИЯ ЗАВЕРШЕНИЯ СТРОКИ каждый раз при сохранении. Правильное поведение, которое поддерживает любой другой текстовый редактор, - это обнаружение формата при загрузке и сохранение в этом формате при сохранении. Нет никакого способа заставить VS2010 сделать это AFAICT, и это позор.
Jon Watte 05
70

В Visual Studio 2015 (это все еще сохраняется в 2019 году для того же значения) проверьте настройку:

Инструменты> Параметры> Среда> Документы> Проверить согласованность окончаний строк при загрузке

VS2015 теперь предложит вам преобразовать окончания строк, когда вы откроете файл, в котором они несовместимы, поэтому все, что вам нужно сделать, это открыть файлы, выбрать нужный вариант в приглашении и снова сохранить их.

Иоганн Карон
источник
4
Хотя сейчас это может быть полезно, обратите внимание, что вопрос был помечен как visual-studio-2010 .
dakab
4
Проблема с этим параметром заключается в том, что он не сообщает вам, какие окончания строк наиболее часто встречаются в документе, поэтому мне нужно сначала открыть документ в Notepad ++, а затем выбрать только правильный вариант. К тому же это проблема сохранения, а не загрузки.
Стратегический мыслитель,
3
Проблема, с которой я столкнулся, заключалась в том, что я открывал файлы с окончанием LF, а затем каждая строка, которую я редактировал или добавлял, сохранялась с окончанием CR LF. Когда я снова открывал файл, он спрашивал меня, на что я хочу изменить несогласованные окончания строк, и я выбирал LF, а затем процесс повторялся. вот как я это решил: stackoverflow.com/a/47318778/2701911
FragmentalStew
Это не решает проблему копирования и вставки текста со смешанными окончаниями строк. Вам необходимо повторно открыть файл, чтобы запустить проверку.
Андри
22

В VS2010 + есть плагин: Line Endings Unifier .

Установив плагин, вы можете щелкнуть правой кнопкой мыши по файлам и папкам в проводнике решений и вызвать пункт меню. 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
gearsin
источник
11
На самом деле это плагин, который не устанавливается по умолчанию.
null
1
@null спасибо, что указали на это, это на самом деле то, что я искал. Я обновил ответ, чтобы лучше отразить все это
Крис Марисич
14

см. 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 
Крис Шаллер
источник