vimdiff を取得する 2 つの大きなファイルがあります。vimdiff の出力で、diff を示す行を無視したいのですが、特定の単語があります。
たとえば、私の場合WARNING:
、ファイル内のプレフィックスを持つすべての行の diff を無視したいと考えています。
ありがとう、
これを実現するために、.vimrcに以下を追加することができます(:h diffexpr
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
-I
(または--ignore-matching-lines=
)スイッチによって提供される機能はdiff
、両方(またはすべて)のファイルの行がこの式に一致する変更された行のみを無視することに注意してください。
スイッチの詳細とvim内man diff
の詳細については、を参照してください。--ignore-matching-lines=RE
:h diffexpr
g:diffignore
編集:使用するパターンを制御するためのオプションの変数を追加しました。function!
定義時に強制的に置換するためにも使用されます。