Wie Peter Rincker festhält , unterstützt die Standardformatierung von Vim das Hervorheben von r
Code in einem "umzäunten Codeblock". Um dies zu aktivieren, müssen Sie lediglich eine globale Variable mit Code in Ihrem vimrc
:
let g:markdown_fenced_languages = ['r']
Danach werden Sie jedoch feststellen, dass Ihre Knitr-Codeblöcke immer noch nicht hervorgehoben sind.
Dies liegt daran, dass Knitr die Formatierung von Info-Strings von Pandoc verwendet, um R-Code, der aus einem regulären Codeblock ausgeführt werden soll , zu unterscheiden , und Vims reguläre Markdown-Hervorhebung unterstützt diese 1 nicht .
Die einfachste Möglichkeit, dies zu beheben, besteht darin, manuell ein zusätzliches Syntaxelement hinzuzufügen, das diesem Codeblocktyp entspricht, indem die folgende Zeile hinzugefügt wird ~/.vim/after/syntax/markdown.vim
syntax region markdownHighlightr matchgroup=markdownCodeDelimiter start=/^\s*```{r}.*$/ end=/^\s*```\ze\s*$/ keepend contains=@markdownHighlightr
Sie können auch ein Vim-Plugin für Pandoc-Hervorhebungen installieren, das dies vermutlich sofort unterstützt.
1: Dies kann in Vims Abschriften-Syntaxdatei nicht wirklich als Problem angesehen werden. Die ursprüngliche Markdown-Syntax enthält überhaupt keine umzäunten Codeblöcke, und die CommonMark-Spezifikation definiert nicht, wie Info-Strings formatiert werden sollen.