当比较两个内容相同但具有行尾的文件时,vim diff不会检测到差异。 有没有办法让vimdiff显示出差异。
答案 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