无论文件类型如何,我都想突出显示某个单词。在我的 .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/