如何在RMD文件(Markdown,knitr,R)中禁用代码区域的拼写检查

3
我正在使用Vim-R插件编辑包含Markdown和R代码块的文件,以便可以使用knitr编译文件。文件类型为:RMD。我已启用拼写检查。如何在代码块中禁用拼写检查?
3个回答

5

拼写检查附加到特定的语法组。找到覆盖R代码块的:syn region,并在其中添加/编辑contains=@NoSpell


我只找到了 /usr/share/vim/vim73/syntax/r.vim,但没有找到 rmd.vim。我是不是在错误的地方查找? - Thomas Möbius
通过使用 :setlocal syntax?:scriptnames 命令进行检查。 - Ingo Karkat
肯定让我找对了方向,谢谢。找到了~/.vim/bundle/R-plugin/syntax/rmd.vim文件,找到了两个受尊敬的syntax region(这里称为rmdChunkrmdrInline),并将contains=@R,rmdChunkDelim更改为contains=@NoSpell,@R,rmdChunkDelim。遗憾的是,:set ft=rmd甚至重新启动vim都没有效果。无论如何,在knitr-chunks中禁用了拼写检查,但R代码仍然进行了拼写检查(包括内联)。似乎rmd.vim正在引入markdown.vim。将此文件复制到~/.vim/syntax/并在syn region markdownCode区域后添加@NoSpell。没有效果 :( - Thomas Möbius

0

与其试图通过区域来使@NoSpell工作,我的方法是在不同语言之间切换。

我使用三种语言,可以通过一个功能键进行切换,其中包括了“nospell”。这样一来,只需按下F7键就能轻松地打开或关闭拼写检查。在编码和撰写过程中,我会将nospell打开;而在最后编辑时,我会切换到适当的语言。

事实上,我发现在代码中进行拼写检查是有益的。我在注释部分、变量名、图表标签等方面也会犯错误。这样一来,你可以快速检查所有将要显示的语言项目。


0

我在OS X上通过编辑~/.vim/syntax/R.vim并将所有@Spell替换为@NoSpell来使其工作,然后重新启动vim。代码块中的所有红色下划线都消失了,但仍然存在于其他rmarkdown部分。

有趣的是,这对具有.R扩展名的纯R文档的拼写检查没有影响,所以我认为自己理解了我在做什么,也许我必须承认我并不完全明白。但至少它关闭了rmarkdown(Rmd)文档中代码块的拼写检查,同时仍然在文档的其他地方起作用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接