如何使Vimdiff检测行尾字符之间的差异(DOS与UNIX)

时间:2019-01-16 09:03:15

标签: vim vimdiff

当比较两个内容相同但具有行尾的文件时,vim diff不会检测到差异。 有没有办法让vimdiff显示出差异。

1 个答案:

答案 0 :(得分:5)

当文件的行尾(dos与unix)不一致时,Vim会将其检测为unix,并且行也将在比较中显示尾随CR(^M)。

您描述的内容(未检测到更改)发生在一个文件始终使用dos,而另一个文件始终使用unix行尾的情况下。然后,Vim“提取” :help 'fileformat'选项值中一致的行结尾。

某些用户将'fileformat'值放入'statusline'中,并使用该值来注意到差异。 (我这样做是有条件的,只有在它与平台的默认值不同时才显示它。)

如果要显示diff本身内部的行尾差异,则可以在开始时强制'fileformat'设置为unix:

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

或在Vim内部:

:windo e! ++ff=unix