Vim 基于外部文件搜索的高亮显示

Vim 基于外部文件搜索的高亮显示,vim,highlight,Vim,Highlight,我有两个文本文件,一个是我目前正在处理的文件,另一个是字典。我想做的是使用后者作为输入来搜索第一个。我想突出显示所有匹配的行 例如: 文件1: I like eggs I like meat I don't like eggplant My mom likes chocolate I like chocolate too meat chocolate 文件2: I like eggs I like meat I don't like eggplant My mom likes chocola

我有两个文本文件,一个是我目前正在处理的文件,另一个是字典。我想做的是使用后者作为输入来搜索第一个。我想突出显示所有匹配的行

例如:

文件1:

I like eggs
I like meat
I don't like eggplant
My mom likes chocolate
I like chocolate too
meat
chocolate
文件2:

I like eggs
I like meat
I don't like eggplant
My mom likes chocolate
I like chocolate too
meat
chocolate
在此示例中,应突出显示这些行:

I like meat
My mom likes chocolate
I like chocolate too

该方法类似于我给您的答案:使用
readfile()
join()
将行连接到模式,然后使用
:match

下面是我如何在命令行上以交互方式构建它:

:match Search /.*\%(<C-R>=join(readfile('file2'), '\|')<CR>\).*/<CR>
:匹配搜索/*\%(=join(readfile('file2'),“\\\”)\)*/
请注意,这个快速的一行程序省略了错误处理、正则表达式转义等。如果您经常需要这样做,我建议您将其转换为一个自定义命令,就像我在链接的答案中向您展示的那样