Какие пробельные символы Winmerge использует для окончания строк (EOF и EOL)?

Если я выберу «Просмотр пробелов» в меню просмотра WinMerge, отобразятся символы конца строки. Один файл был изменен, но я не могу найти документацию о том, какие символы представляют какие символы.

Не знаю, что означает эта пара символов, это файл до преобразования конца строки в CR/LF:

До

Этот символ, кажется, представляет пару CR/LF, так как я преобразовал файл, чтобы он имел эти окончания строк:

После

Чтобы добавить еще немного контекста, Visual Studio обнаружила, что в этом файле есть смешанные окончания строк, и преобразовала их в CR/LF. Затем я посмотрел на отличия от исходного файла, хранящегося в git. Таким образом, преобразование конца строки git может иметь здесь некоторое взаимодействие в том, как оно преобразует исходный файл. Мои окончания строк предназначены для автоматического изменения окончаний строк окон.


person kristianp    schedule 20.12.2016    source источник
comment
Не могу вам об этом сказать, но могу сказать, что WinMerge использует один и тот же символ (¤, кружок с четырьмя отходящими от него линиями) для CR, LF или CRLF, независимо от того, какое окончание строки по умолчанию используется для файла. Вы можете установить окончания строк с помощью Файл->Преобразовать окончания строк в, что отображается только при сравнении файлов и нажатии на один из них.   -  person Josiah Yoder    schedule 25.04.2017


Ответы (1)


В WinMerge 2.14.0.0 Unicode (и, возможно, в других версиях) есть настройка в меню: //edit/options/Editor «сохранять исходные символы EOL».

  • Когда установлен флажок "сохранять исходные символы EOL", WinMerge показывает §¶ для одних файлов и для других1.
  • Когда флажок "сохранять исходные символы EOL" не установлен, WinMerge показывает ¤.
    Примечание: если флажок "сохранять исходные символы EOL" не установлен, WinMerge может помечать два файла, которые кажутся идентичными, как имеющие различия в каждой строке.

Использование шестнадцатеричного редактора показывает, что:

  • 0x0d, также известный как <cr>, отображается как §; и
  • 0x0a, также известный как <lf>, отображается как .

1 Предполагаемые проблемы с окончаниями строк в моем репозитории привели меня к вопросу OP; поэтому у меня есть и §¶, и .

person Kasper van den Berg    schedule 26.07.2017