使用 vimdiff 时忽略白空格的修改

使用 vimdiff 能够方便地观察多个文件之间的异同。但有时我们会希望 VIM 忽略白空格的变化。比如,对于 Python 脚本,有时我们会修改缩进来对代码进行格式化;此时对比新旧文件之间的差异时,我们更多地是希望看看有没有手误修改了其他不应修改的部分,从而应当忽略白空格的变化。

这篇文章简单记录一下这个问题的解法。

这个问题其实不难解决,只需在 vimrc 中加入以下内容即可:

1
set diffopt+=iwhite

不过,这样设定也会影响到 VIM 正常编辑时所处的模式。如果希望这一设定只限定在 vimdiff 模式,则可以这样修改:

1
2
3
if &diff
set diffopt+=iwhite
endif

若是想要自由切换,则可以这样做:

1
2
3
4
5
6
7
8
9
10
if &diff
map gs :call IwhiteToggle()<CR>
function! IwhiteToggle()
if &diffopt =~ 'iwhite'
set diffopt-=iwhite
else
set diffopt+=iwhite
endif
endfunction
endif

最后,若不想修改 vimrc 可以在命令行这样启动命令:

1
vimdiff -c 'set diffopt+=iwhite'
俗话说,投资效率是最好的投资。 如果您感觉我的文章质量不错,读后收获很大,预计能为您提高 10% 的工作效率,不妨小额捐助我一下,让我有动力继续写出更多好文章。