Отметить разницу как хорошо в vimdiff - PullRequest
10 голосов
/ 07 октября 2011

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

пример

Name: Donald Duck    |   Name: Daisy Duck

Здесь я хотел бы иметь возможность пометить это изменение как «нормальный» дифференциал (т.е. я ожидаю имя и явное изменение пола).

Ответы [ 2 ]

2 голосов
/ 07 октября 2011

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

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

1 голос
/ 07 октября 2011

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

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

%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.

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

...