一次扩展/修改所有文件类型的vim突出显示?

时间:2010-11-29 07:37:48

标签: vim syntax-highlighting

如何一次扩展/修改所有文件类型的vim突出显示?

我有一些相对简单的模式,我想以不同的方式突出显示,可以在任何文件类型中出现。所以,不要在我可能使用的每个可想到的文件类型中添加类似下面的内容(〜/ .vim / syntax / python.vim,... / css.vim,... / html.vim,...)我可以为所有文件类型定义一次吗?

syn match   SpecialComment  "@[@\-+].*" containedin=Comment
syn match   Comment     "\* .*$"hs=s+1  containedin=SpecialComment

更新:

根据建议,我将更改保存到~/.vim/after/filetype.vim,结果它在Cream中有效,但没有库存Gvim或Vim。我正在使用here的实际代码,一个用于测试here的示例python文件,以及所需的结果:

what the pastebin filetypes.vim looks like in Cream

1 个答案:

答案 0 :(得分:3)

您可以尝试将这两行放在~/.vim/after/filetype.vim中。这应该在任何顶级语法文件之后获得。它可能不是“正确”的地方,但它应该有效。

filetype.vim似乎是在语法文件之前获取的,因此它会被默认语法文件覆盖。因此,我建议您创建一个名为“

”的新文件
~/.vim/after/common_syntax.vim

使用您感兴趣的高亮线条。然后,将其添加到~/.vim/after/filetype.vim

if !exists("after_autocmds_loaded")
    let after_autocmds_loaded = 1
    au BufNewFile,BufRead * source ~/.vim/after/common_syntax.vim
endif

这将导致在读取文件后获取文件。

P.S。回应示例代码中的注释:“为什么我们不能使用普通的'评论'组而不是'pythoncomment'等?”,这是因为语法高亮组是pythonComment,它的颜色与评论。如果您的语法足够独特,不会出现问题,那么您可以containedin=ALL。如果它很接近但不是很独特,那么您可以containedin=ALLBUT,conflictgroup conflictgroup,其中{{1}}是您想要避开的高亮组。