在vim中传播两个文件时(例如vim -d file1 file2),我希望忽略所有空格。
我几乎通过遵循Adam Katz在这个问题中的建议来实现这一点: Is there a way to configure vimdiff to ignore ALL whitespaces?
该建议导致diff命令获取-w选项,因此它不包含结果中只有空格差异的行。
如果存在具有空白差异和非空白差异的行,则diff会正确返回这些行。但是vim也强调了这个空白。
E.g。如果差异的两条线是:
File 1: a,b,c,d
File 2: a, b, c, e
然后突出显示的差异将是b, c, e
而不是我想要的e
。
有没有办法告诉vim在突出显示过程中忽略空格?
我正在使用vim 7.3(gvim)。
答案 0 :(得分:2)
diff
按行而不是字符或单词操作,因此-b
和-w
确定忽略哪些行。如果不忽略某一行,那么只要涉及非空白更改(除非您忽略大小写或明确忽略与某些正则表达式匹配的行),diff
将始终输出如下内容:
1c1
< a,b,c,d
---
> a, b, c, e
更改diffopt
甚至diffexpr
只会影响Vim调用diff
的方式,而不会影响它如何处理收到的差异。由于-b
和-w
都不会改变上述差异,因此Vim会显示相同的结果。因此,你正在寻找的是一种改变Vim如何突出它收到的差异的方法,我认为这是不可能的。
答案 1 :(得分:0)
文件1 = f1, 文件2 = f2
如何删除另一个临时文件中的空格?
vim -c "s/\s//g" -c "wq! f2.tmp" f2
然后
vimdiff f1 f2.tmp