Отметить разницу как ok в vimdiff

У меня есть несколько больших json файлов, которые мне нужно проверить на наличие ошибок, и задалось вопросом, можно ли пометить разницу как ok и применить это для всего сеанса diff, тем самым устраняя его дальше в файле.

Пример

Name: Donald Duck    |   Name: Daisy Duck

Здесь я хотел бы отметить это изменение как "ok" diff (т.е. я ожидаю название и видимое изменение пола).

Ответ 1

Ну, способ сделать это в 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

Конечно, вы хотите сделать его более гибким, но это должно дать вам общий метод

Ответ 2

Я не думаю, что есть встроенный способ сделать это. Но способ, который возникает для меня, - это заменить файлы, а затем переустановить.

Например, если это изменение имени ОК, то просто замените в обоих файлах:

%s/Name: Donald Duck/Name: placeholder_1/g    ; in file 1
%s/Name: Daisy Duck/Name: placeholder_1/g     ; in file 2

Вы можете сделать это, например. sed или perl перед запуском vim -d.

Теперь они будут совпадать. Но переход от Дональда Дака к Микки Маусу не изменится, ни переключение с Daffy Duck на Daisy Duck.