syntax-highlighting - 如何自动突出显示vim中的单词?

标签 syntax-highlighting vim

无论文件类型如何,我都想突出显示某个单词。在我的 .vimrc 中,我添加了:

highlight link notes todo
syntax match notes contained "TODO"
syntax match notes contained "NOTE"
syntax match notes contained "!!!"
syntax match notes contained "???"

注意:我也试过 syntax match notes "TODO" (没有包含)。

不幸的是,我实际上无法突出显示这些关键字中的任何一个。

编辑:

我将代码移至 .vim/after/syntax/html.vim为了得到应用的语法。它目前看起来像:
syntax match todo contained "\<\(TODO\|NOTE\|!!!\|???\)"

现在当我输入 :syntax我收到 Todo xxx match /\<\(TODO\|NOTE\|!!!\|???\)/ contained
但是,当我尝试在其中键入带有 TODO 的 html 注释(即 <!-- TODO something --> )时,没有应用突出显示。

另外,我是否必须创建一个 .vim/after/syntax/file_type.vim对于每种文件类型,或者我可以以某种方式应用它?

最佳答案

全局突出显示的一种可能解决方法是将关键字附加到现有语法组。在您的 .vimrc 中:

function! HighlightAnnotations()
  syn keyword vimTodo contained HACK OPTIMIZE REVIEW
  syn keyword rubyTodo contained HACK REVIEW
  syn keyword coffeeTodo contained HACK OPTIMIZE REVIEW
  syn keyword javaScriptCommentTodo contained HACK OPTIMIZE REVIEW
endfunction
autocmd Syntax * call HighlightAnnotations()

我正在为我常用的语言附加现有的 Todo 类型。通过将它添加到所有文件类型,我很懒惰,但如果您愿意,您可以更具体。

要查找现有组,请打开带有您感兴趣的扩展名的文件并运行 :syn list . Vim 将提供当前加载的所有语法组的列表。

希望这将是一个可行的解决方案,直到您找到一种方法来跨所有文件类型执行此操作。

关于syntax-highlighting - 如何自动突出显示vim中的单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9558309/

相关文章:

vim - 如何打开 vim 并自动将日期写入文件?

javascript - 如果同一页面上有多个代码镜像,则获取所选代码镜像的值

drupal-7 - SyntaxHighlighter 将 < > 符号视为 HTML 标签

syntax-highlighting - Vim语法和文件类型检测非常奇怪的行为

perl - VIM 9 Perl 文件的字边界更改

c++ - 在 Windows 10 (MinGW) 中使用 gVim 8.1 编译 C/C++

apache-flex - ActionScript 中的语法高亮库

netbeans - 如何在 Netbeans PHP IDE 中获取批处理命令行 cli .bat 和 .sh 的 `syntax highlight`?

VimScript : is there an autocmd for an action taken after idle time?

vim - 清除当前行的简短命令?