sie*_*ste 5 vim vim-syntax-highlighting
在vim中,我正在编辑文件类型为"markdown"的文件,但其中包含乳胶数学表达式,如$ x_i $.对于markdown,Vim的语法突出显示模式*_*(字母 - 下划线字母)是一个错误,并突出显示这些模式中的下划线为鲜红色.我想通过在我的.vimrc中添加一行来关闭它:
autocmd BufEnter *.Rmd "Dear vim, please don't highlight the pattern *_*"
Run Code Online (Sandbox Code Playgroud)
这样做的适当命令是什么?是否可以在.vimrc中执行此操作,而无需编辑语法文件?
注意:我想保持降价语法一般突出显示,只关闭该特定功能.
您必须为此修改Markdown语法.一种方法是删除错误的解析:
:syn clear markdownError
Run Code Online (Sandbox Code Playgroud)
但这会导致其他语法规则在该char 上启动斜体部分_.更好地清除错误突出显示:
:hi link markdownError Normal
Run Code Online (Sandbox Code Playgroud)
要维护一般错误突出显示,但只定义特殊$x_i$字符串的异常,请定义覆盖语法组; 幸运的是,这很容易,因为没有现有的语法:
:syn match markdownIgnore "\$x_i\$"
Run Code Online (Sandbox Code Playgroud)
(调整正则表达式以匹配所有可能的数学表达式.)这需要在原始语法脚本之后~/.vim/after/syntax/markdown.vim执行.
如果_要从降价错误模式中删除,可以重新定义它.在我的情况下,我想在一个单词中关闭下划线的错误通知,因为我在我的文档中放了很多URL.
有一行定义syntax/markdown.vim文件中的错误模式
" Original error pattern
syn match markdownError "\w\@<=_\w\@="
Run Code Online (Sandbox Code Playgroud)
_从模式中删除并添加到~/.vim/after/syntax/markdown.vim.
" New error pattern without the underscore
syn match markdownError "\w\@<=\w\@="
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3094 次 |
| 最近记录: |