Vim:如何自动突出显示包含关键字的每一行?

时间:2013-10-18 15:55:14

标签: syntax-highlighting vim vim-plugin vim-syntax-highlighting

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

1 个答案:

答案 0 :(得分: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的好处是不会干扰语法突出显示(这可能是另一种选择)。缺点是当您在同一窗口中查看非日志缓冲区时,突出显示将持续存在。 (您可以通过添加更多autocmds来解决此问题,但这并非易事。)