gpt4 book ai didi

vim - 有没有办法配置 vimdiff 以忽略所有空格?

转载 作者:行者123 更新时间:2023-12-01 23:34:25 34 4
gpt4 key购买 nike

我使用 vim -d file1 file2 来查看它们之间的差异。这工作正常,但我想忽略空白更改 - 它们与源代码文件无关。

Vim 帮助指出以下命令将发挥作用:

set diffopt+=iwhite

但不幸的是,此命令仅将 -b 添加到 diff 工具命令行,并且仅忽略尾随空格。 diff 的正确命令行键应该是 -w,以忽略所有空白更改。但我找不到如何直接从 Vim 修改 diff 命令行。当然,我可以编译自定义 diff,或者用 diff.sh 替换 diff,但这看起来有点难看:(。

是否有更好的方法来修改 Vim 与 diff 工具交互以显示文件差异的方式?

最佳答案

更新:截至patch 8.1.0393 (2018-09-15),diffopt 可以被告知忽略所有空白:

set diffopt+=iwhiteall

如果您想要完全向后兼容,请像这样实现:

if exists('&diffopt')
if has("patch-8.1.0393")
set diffopt+=iwhiteall
else
set diffopt+=iwhite
function DiffW()
let opt = ""
if &diffopt =~ "icase"
let opt = opt . "-i "
endif
if &diffopt =~ "iwhite"
let opt = opt . "-w "
endif
silent execute "!diff -a --binary " . opt .
\ v:fname_in . " " . v:fname_new . " > " . v:fname_out
redraw
endfunction
set diffexpr=DiffW()
endif
endif

这个函数是我从diffexpr docs借来的,将 -b 更改为 -w 并添加 redraw 命令以确保屏幕立即重绘,而不是等待用户点击 输入

在我改进 vim 的 diff 功能的相关任务中,我发现 patience diff support我一直想玩弄 diffchar plugin .

关于vim - 有没有办法配置 vimdiff 以忽略所有空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1265410/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com