我有几个大的json文件,我需要检查错误,并想知道是否可以将差异标记为正确并且有适用于整个差异会话,从而在文件中进一步消除它。 / p>
例如
Name: Donald Duck | Name: Daisy Duck
在这里,我希望能够将此更改标记为“确定”差异(即我希望名称和明显的性别变化)。
答案 0 :(得分:2)
嗯,在vim中这样做的方法只是做一个自定义差异表达式
e.g。这应该放在你的.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
当然,你想让它更灵活,但这应该给你一般的方法
答案 1 :(得分:1)
我认为没有内置的方法可以做到这一点。但是我发生的方式是对文件进行替换,然后再使用rediff。
例如,如果该名称更改正常,则只需替换两个文件:
%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。
现在那些会匹配。但是从唐老鸭到米老鼠的改变不会,也不会从达菲鸭改为雏菊鸭。