关闭在vim中突出显示某个模式

时间:2013-10-02 13:04:06

标签: vim vim-syntax-highlighting

在vim中,我正在编辑文件类型为“markdown”的文件,但其中包含乳胶数学表达式,如$ x_i $。对于markdown,Vim的语法突出显示模式* _ *(字母 - 下划线字母)是一个错误,并突出显示这些模式中的下划线为鲜红色。我想通过在.vimrc中添加一行来解决这个问题:

autocmd BufEnter *.Rmd "Dear vim, please don't highlight the pattern *_*"

这样做的适当命令是什么?是否可以在.vimrc中执行此操作,而无需编辑语法文件?

注意:我希望一般只保留降价语法突出显示,只关闭该特定功能。

2 个答案:

答案 0 :(得分:7)

您必须修改Markdown语法。一种方法是删除错误的解析:

:syn clear markdownError

但这会导致其他语法规则在_个char上启动 italic 部分。最好用以下方法清除错误突出显示:

:hi link markdownError Normal

要维护一般错误突出显示,但只定义特殊$x_i$字符串的异常,请定义覆盖语法组;幸运的是,这很容易,因为没有现有的语法:

:syn match markdownIgnore "\$x_i\$"

(调整正则表达式以匹配所有可能的数学表达式。) 在原始语法脚本之后,需要将其放入~/.vim/after/syntax/markdown.vim以执行

答案 1 :(得分:6)

如果要从降价错误模式中删除_,可以重新定义它。在我的情况下,我想在一个单词中关闭下划线的错误通知,因为我在我的文档中放了很多URL。

syntax/markdown.vim文件

中定义错误模式的行
" Original error pattern
syn match markdownError "\w\@<=_\w\@="

从模式中删除_并将其添加到~/.vim/after/syntax/markdown.vim

" New error pattern without the underscore
syn match markdownError "\w\@<=\w\@="