如何使 vimdiff 检测行结束字符的差异(dos vs unix)
How to make vimdiff to detect differences in line ending characters(dos vs unix)
当比较两个内容相同但有行结尾的文件时,vim diff 不会检测到差异。
有没有办法让 vimdiff 显示差异。
当文件的行结尾不一致(dos 与 unix)时,Vim 会将它们检测为 unix,并且行将显示尾随 CR(^M
),也在差异中.
当一个文件始终使用 dos 而另一个始终使用 unix 行结尾时,就会发生您描述的情况(未检测到更改)。 Vim 然后 "abstracts away" :help 'fileformat'
选项值中一致的行结尾。
一些用户将 'fileformat'
值放入 'statusline'
中,并使用它来注意到差异。 (我这样做是有条件的,只有当它与平台的默认值不同时才显示它。)
如果你想在 diff 本身内部显示行结束差异,你可以强制 'fileformat'
到 unix,或者在开始时:
$ vimdiff --cmd 'set fileformats=unix' file1 file2
或在Vim内:
:windo e! ++ff=unix
当比较两个内容相同但有行结尾的文件时,vim diff 不会检测到差异。 有没有办法让 vimdiff 显示差异。
当文件的行结尾不一致(dos 与 unix)时,Vim 会将它们检测为 unix,并且行将显示尾随 CR(^M
),也在差异中.
当一个文件始终使用 dos 而另一个始终使用 unix 行结尾时,就会发生您描述的情况(未检测到更改)。 Vim 然后 "abstracts away" :help 'fileformat'
选项值中一致的行结尾。
一些用户将 'fileformat'
值放入 'statusline'
中,并使用它来注意到差异。 (我这样做是有条件的,只有当它与平台的默认值不同时才显示它。)
如果你想在 diff 本身内部显示行结束差异,你可以强制 'fileformat'
到 unix,或者在开始时:
$ vimdiff --cmd 'set fileformats=unix' file1 file2
或在Vim内:
:windo e! ++ff=unix