Al fine di raggiungere questo obiettivo, si potrebbe aggiungere il seguente al vostro .vimrc (una semplice modifica di mente dall'esempio trovato eseguendo :h diffexpr
da vim):
set diffexpr=MyDiff()
function! MyDiff()
let opt = ""
if exists("g:diffignore") && g:diffignore != ""
let opt = "-I " . g:diffignore . " "
endif
if &diffopt =~ "icase"
let opt = opt . "-i "
endif
if &diffopt =~ "iwhite"
let opt = opt . "-b "
endif
silent execute "!diff -a --binary " . opt . v:fname_in . " " .
\ v:fname_new . " > " . v:fname_out
endfunction
E 'interessante notare che il la funzionalità fornita dallo switch -I
(o --ignore-matching-lines=
) per diff
ignorerà SOLO le righe modificate in cui la riga in BOTH (o tutti) i file corrisponde a questa espressione.
Vedere man diff
per ulteriori dettagli sull'interruttore --ignore-matching-lines=RE
e :h diffexpr
all'interno di Vim per ulteriori dettagli su questo.
MODIFICA: aggiunta la variabile opzionale g:diffignore
per controllare quale modello utilizzare. Utilizzato anche function!
per forzare la sostituzione sulla definizione.
Ciò non consente la modifica diretta. In generale lo scopo sarebbe quello di modificare direttamente file2, ad eccezione delle righe ignorate. – ralfoide