我有几个大的 json 文件,我需要检查错误,并且想知道是否可以将差异标记为 ok 并将其应用于整个 diff 会话,从而在文件中进一步消除它。
例子
Name: Donald Duck | Name: Daisy Duck
在这里,我希望能够将此更改标记为“正常”差异(即我希望名称和明显的性别变化)。
好吧,在 vim 中做这件事的方法,就是做一个自定义的 diff 表达式
例如,这应该放在你的 .vimrc 中
set diffexpr=MyDiff()
function! MyDiff()
let opt = ""
if &diffopt =~ "icase"
let opt = opt . "-i "
endif
if &diffopt =~ "iwhite"
let opt = opt . "-Ewb "
endif
silent execute "!diff -I 'Duck' " . opt . v:fname_in . " " . v:fname_new .
\ " > " . v:fname_out
endfunction
当然,你想让它比这更灵活,但这应该给你一般的方法
我认为没有内置的方法可以做到这一点。但是我想到的方法是对文件进行替换,然后重新比较。
例如,如果该名称更改是可以的,那么只需在两个文件中替换:
%s/Name: Donald Duck/Name: placeholder_1/g ; in file 1
%s/Name: Daisy Duck/Name: placeholder_1/g ; in file 2
您也可以在启动 vim -d 之前使用例如 sed 或 perl 来执行此操作。
现在这些将匹配。但是从唐老鸭变成米老鼠不会,从达菲鸭变成雏菊鸭也不会。