在vimdiff中将差异标记为ok

时间:2011-10-07 15:11:42

标签: vim vimdiff

我有几个大的json文件,我需要检查错误,并想知道是否可以将差异标记为正确并且有适用于整个差异会话,从而在文件中进一步消除它。 / p>

例如

Name: Donald Duck    |   Name: Daisy Duck

在这里,我希望能够将此更改标记为“确定”差异(即我希望名称和明显的性别变化)。

2 个答案:

答案 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。

现在那些会匹配。但是从唐老鸭到米老鼠的改变不会,也不会从达菲鸭改为雏菊鸭。