在vim中,我正在编辑文件类型为“markdown”的文件,但其中包含乳胶数学表达式,如$ x_i $。对于markdown,Vim的语法突出显示模式* _ *(字母 - 下划线字母)是一个错误,并突出显示这些模式中的下划线为鲜红色。我想通过在.vimrc中添加一行来解决这个问题:
autocmd BufEnter *.Rmd "Dear vim, please don't highlight the pattern *_*"
这样做的适当命令是什么?是否可以在.vimrc中执行此操作,而无需编辑语法文件?
注意:我希望一般只保留降价语法突出显示,只关闭该特定功能。
答案 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\@="