gpt4 book ai didi

vim - 忽略 vimdiff 输出中包含特定单词的行

转载 作者:行者123 更新时间:2023-12-02 04:39:29 25 4
gpt4 key购买 nike

我有 2 个大文件要获取 vimdiff。在 vimdiff 输出中,我想忽略显示 diff 但有特定单词的行。

例如就我而言,我想忽略文件中带有前缀 WARNING: 的所有行的差异。

谢谢

最佳答案

为了实现这一点,您可以将以下内容添加到 .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提供的功能仅忽略两个(或所有)文件中的行与此表达式匹配的任何更改行。

有关 vim 中的 --ignore-matching-lines=RE 开关和 :h diffexpr 的更多详细信息,请参阅 man diff详细信息。

编辑:添加了可选变量g:diffignore来控制要使用的模式。还使用 function! 强制替换定义。

关于vim - 忽略 vimdiff 输出中包含特定单词的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8861910/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com