2

如果是一个“.log”文件,想让文件中包含关键字“dog”的每一行都为红色,并使文件中包含关键字“cat”的每一行都为黄色。这应该在我在 vim 中打开“.log”文件时自动完成。有没有办法做到这一点?

4

1 回答 1

3

首先,将颜色定义为高亮组

:hi Dogs ctermbg=red guibg=red
:hi Cats ctermbg=yellow guibg=yellow

:match您可以通过命令或matchadd()函数添加(窗口本地)突出显示。通过匹配包含关键字的整行,您将全部突出显示。为您的:autocmd日志文件安装(尽管我更喜欢使用 Vim 的文件类型检测而不是硬编码文件模式)。

:autocmd BufWinEnter *.log call matchadd('Dogs', '^.*dog.*$') | call matchadd('Cats', '^.*cat.*$')

这样做的好处:match是不会干扰语法突出显示(这将是一种替代方法)。缺点是当您在同一窗口中查看非日志缓冲区时,突出显示将持续存在。(您可以通过添加更多自动命令来解决此问题,但这并非易事。)

于 2013-10-18T16:05:00.940 回答