Để đạt được điều này, bạn có thể thêm dòng sau vào vimrc của bạn (một biến thể đầu óc đơn giản từ ví dụ tìm thấy bằng cách chạy :h diffexpr
trong 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
Đó là cần lưu ý rằng các chức năng được cung cấp bởi công tắc -I
(hoặc --ignore-matching-lines=
) cho diff
CHỈ sẽ bỏ qua bất kỳ dòng nào đã thay đổi trong đó dòng trong cả hai (hoặc tất cả) tệp khớp với biểu thức này.
Xem man diff
để biết thêm chi tiết về công tắc --ignore-matching-lines=RE
và :h diffexpr
trong vim để biết thêm chi tiết về điều này.
CHỈNH SỬA: Đã thêm biến tùy chọn g:diffignore
để kiểm soát mẫu nào sẽ sử dụng. Cũng được sử dụng function!
để buộc thay thế theo định nghĩa.
Điều này không cho phép chỉnh sửa trực tiếp. Nói chung, mục đích sẽ là chỉnh sửa trực tiếp tệp 2, ngoại trừ các dòng bị bỏ qua. – ralfoide