Отметить разницу как хорошо в vimdiff

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

пример

Name: Donald Duck    |   Name: Daisy Duck

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

2 ответа

Решение

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

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

Теперь те будут соответствовать. Но изменение от Дональда Дака до Микки Мауса не будет, равно как и от Даффи Дака до Дейзи Дака.

Другие вопросы по тегам