Что означает Visual Studio, нормализуя противоречивые окончания строк?

Visual Studio иногда говорит мне:

Окончания строк в следующих файлах несовместимы. Вы хотите нормализовать окончание строки?

Затем он дает мне возможность сбрасывать разные стандарты или что-то вроде Windows, Mac, Unix и нескольких Unicode.

Что это значит и что произойдет, если я нажму Yes?

Ответ 1

Что обычно означает, что у вас есть строки, заканчивающиеся чем-то другим, кроме пары возврата каретки/линии. Это часто происходит при копировании и вставке с веб-страницы в редактор кода.

Нормализация окончаний строки - это просто убедиться, что все символы окончания строки согласованы. Он не позволяет одной строке заканчиваться на \r\n, а другой заканчивается на \r или \n; первая - пара конечных строк Windows, в то время как другие обычно используются для файлов Mac или Linux.

Поскольку вы работаете в Visual Studio, вы, очевидно, захотите выбрать "Windows" из раскрывающегося списка.: -)

Ответ 2

Некоторые строки заканчиваются на \n.

Некоторые другие строки заканчиваются на \r\n.

Visual Studio предлагает вам сделать все строки такими же.

Ответ 3

Если вы используете Visual Studio 2012:

Перейдите в меню Файл → Дополнительные параметры сохранения → выберите Тип окончания линии, как Windows (CR LF).

Ответ 4

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

Символы ASCII, используемые для окончаний строки:

CR, возврат каретки
LF, Line Feed

Windows = CRLF
Mac OS 9 или ранее = CR
Unix = LF

Ответ 5

Чтобы включить или выключить опцию, выполните следующие действия в строке меню:

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

Ответ 6

Wikipedia статья новой строки может помочь вам. Вот выдержка:

Различные соглашения новой строки часто вызывают текстовые файлы, которые были переданы между системы разных типов, которые будут отображаться некорректно. Например, файлы, происходящие из Системы Unix или Apple Macintosh могут отображаться как одна длинная строка для некоторых программ, работающих на Майкрософт Виндоус. И наоборот, при просмотре файла, происходящего с компьютера под управлением Windows, на Unix, дополнительный CR может отображаться как ^ M или в конце каждой строки или как разрыв второй строки.

Ответ 7

Это означает, что, например, некоторые ваши строки текста с <Carriage Return><Linefeed> (стандарт Windows), а некоторые заканчиваются только с помощью <Linefeed> (стандарт Unix).

Если вы нажмете "да", то конец строки в исходном файле будет преобразован, чтобы иметь одинаковый формат.

Это не будет иметь никакого значения для компилятора (потому что конец строки считается простым пробелом), но он может иметь некоторое значение для других инструментов (например, "diff" в вашей системе управления версиями).

Ответ 8

Это не просто Visual Studio... Это будут любые инструменты, которые читают файлы, компиляторы, компоновщики и т.д., Которые должны были бы с этим справиться.

В целом (для разработки программного обеспечения) мы принимаем многоплатформенную строку, заканчивающуюся, но пусть программное обеспечение контроля версий справится с этим.

Ответ 9

Существует надстройка для Visual Studio 2008, которая преобразует формат конца строки при сохранении файла. Вы можете скачать его здесь: http://grebulon.com/software/stripem.php