Como señala Peter Rincker , el formato de rebaja estándar de Vim ya incluye soporte para resaltar r
código dentro de un "bloque de código vallado", y para habilitarlo, solo tiene que establecer una variable global con código en su vimrc
:
let g:markdown_fenced_languages = ['r']
Sin embargo, después de hacerlo, encontrará que sus bloques de código de knitr todavía no están resaltados.
Esto se debe a que knitr utiliza el formato de cadenas de información de Pandoc para diferenciar el código R que se ejecutará desde un bloque de código normal , y el resaltado de Markdown regular de Vim no admite esto 1 .
La forma más fácil de solucionar esto es agregar manualmente un elemento de sintaxis adicional para que coincida con este tipo de bloque de código agregando la siguiente línea a ~/.vim/after/syntax/markdown.vim
syntax region markdownHighlightr matchgroup=markdownCodeDelimiter start=/^\s*```{r}.*$/ end=/^\s*```\ze\s*$/ keepend contains=@markdownHighlightr
También podría considerar instalar un complemento Vim para resaltar Pandoc, que presumiblemente lo admitiría de inmediato.
1: Esto realmente no puede considerarse un problema en el archivo de sintaxis de rebajas de Vim. La sintaxis original de Markdown no incluye bloques de código cercados, y la especificación CommonMark no define cómo se deben formatear las cadenas de información.