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

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

如果是一个“.log”文件,希望文件中包含关键字“dog”的每一行都显示为红色,而文件中包含关键字“cat”的每一行都显示为黄色。当我在 vim 中打开“.log”文件时,这应该自动完成。有什么办法可以做到这一点吗?

最佳答案

首先,将颜色定义为突出显示组:

: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 的好处是它不会干扰语法突出显示(这将是一种替代方案)。缺点是当您在同一窗口中查看非日志缓冲区时,突出显示将持续存在。 (您可以通过添加更多自动命令来解决此问题,但这并不简单。)

关于syntax-highlighting - Vim:如何自动突出显示包含关键字的每一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19453907/

相关文章:

bash - 无法更改终端中的默认编辑器

vim - 在vim编辑器中将缓冲区列表作为quickfix窗口?

vimwiki 本地文件链接处理

emacs - 在 emacs 中突出显示行

ASP.NET MVC 3 Razor 页面中的 JavaScript

vim - 复杂的 ftdetect 插件

vim - Vim 的自动阅读是如何工作的?

Eclipse CDT : Disable red underlining

git - 如何在 mergetool 期间选择整个 REMOTE 文件?

vim - 如果 Vim 中有多个空间,则渲染空间