Как сделать vimdiff для обнаружения различий в символах окончания строки (dos против unix) - PullRequest
0 голосов
/ 16 января 2019

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

1 Ответ

0 голосов
/ 16 января 2019

Если в файлах есть несовместимые (DOS или UNIX) окончания строк, Vim обнаружит их как Unix, а в строках будет отображаться конечный CR (^M), также в разнице.

То, что вы описываете (никаких изменений не обнаружено) происходит, когда один файл последовательно использует dos, а другой последовательно использует окончания строки unix. Затем Vim «абстрагирует» согласованные окончания строк в значении опции :help 'fileformat'.

Некоторые пользователи помещают значение 'fileformat' в 'statusline' и используют это, чтобы заметить расхождение. (Я делаю это с условным отображением, только если оно отличается от значения по умолчанию для платформы.)

Если вы хотите показать различия конца и конца строки внутри самого diff, вы можете принудительно принудительно * 'fileformat' разблокировать либо при запуске:

$ vimdiff --cmd 'set fileformats=unix' file1 file2

или внутри Vim:

:windo e! ++ff=unix
...