I have two files that when I compare with diff show that every line has changed. When I compare them with diff -w
(ignoring whitespace) it shows the few minimal changes that I expect.
Obviously there is some difference between the whitespace in each file, but I don't know what they are or how to find them. I have tried editing the files to ensure that the whitespace is actually space characters (as opposed to tabs) but am unsure what else to do.
I have used vim with :set list on
to confirm there was no trailing space at the end of the lines.
I also believe that each file has Linux line terminators as vim didn't show the ^M
at the end of the lines.
Best Answer
For
vim
users, there is a handy utility to show exact differences between files:This will put each file in windows, side-by-side, and differences with highlighted in color.
Some useful commands when in
vimdiff
While in
vimdiff
, some useful commands are:]c
: jump to next change[c
: jump to previous changectrl-W ctrl-W
: switch to other windowzo
: open foldszc
: close foldsExample
Here is an example of
vimdiff
in anxterm
comparing two versions of acups
configuration file:You can see that long sections of identical lines have been collapsed. They can be opened again with
zo
.The color scheme will vary depending on your option settings. In the above example, when a line appears in one file but not the other, that line is given a dark blue background. In the other file, the missing lines are indicated by dashed lines. When a line appears in both files but has some differences, the unchanged parts of the lines have a pink background and the changed parts have a red background.