我有2個大文件需要vimdiff。在vimdiff輸出中,我想忽略顯示diff但具有特定單詞的行。在vimdiff輸出中忽略帶特定單詞的行
例如在我的情況下,我想忽略在我的文件中前綴爲WARNING:
的所有行的差異。
感謝,
我有2個大文件需要vimdiff。在vimdiff輸出中,我想忽略顯示diff但具有特定單詞的行。在vimdiff輸出中忽略帶特定單詞的行
例如在我的情況下,我想忽略在我的文件中前綴爲WARNING:
的所有行的差異。
感謝,
你爲什麼不過濾調用方面Vimdiff前的文件嗎?
grep -v "^WARNING" file1 > file1_w;
grep -v "^WARNING" file2 > file2_w;
vimdiff file1_w file2_w
爲了實現這一點,你可以添加以下到您的.vimrc(從例如一個頭腦簡單的修改的Vim內運行:h diffexpr
找到):
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
提供的功能將只會忽略BOTH(或全部)文件中的行與此表達式匹配的任何已更改的行。
見man diff
爲--ignore-matching-lines=RE
交換機上更多的細節和:h diffexpr
VIM內對更多細節。
編輯:添加可選變量g:diffignore
來控制要使用的模式。還用function!
強制更換定義。
這不允許直接編輯。一般來說,目的是直接編輯file2,除了忽略的行。 – ralfoide 2013-12-16 23:14:43