Como observa Peter Rincker , a formatação padrão de descontos do Vim já inclui suporte para destacar o r
código em um "bloco de código protegido" e, para habilitá-lo, basta definir uma variável global com o código em vimrc
:
let g:markdown_fenced_languages = ['r']
No entanto, depois de fazer isso, você verá que seus blocos de código knitr ainda não estão destacados.
Isso ocorre porque o knitr usa a formatação das strings de informações do Pandoc para diferenciar o código R que deve ser executado a partir de um bloco de código regular , e o destaque Markdown regular do Vim não suporta isso 1 .
A maneira mais fácil de corrigir isso é adicionar manualmente um item de sintaxe extra para corresponder a esse tipo de bloco de código, adicionando a seguinte linha a ~/.vim/after/syntax/markdown.vim
syntax region markdownHighlightr matchgroup=markdownCodeDelimiter start=/^\s*```{r}.*$/ end=/^\s*```\ze\s*$/ keepend contains=@markdownHighlightr
Você também pode considerar instalar um plug-in Vim para destacar o Pandoc, o que provavelmente ofereceria suporte a isso imediatamente.
1: Isso realmente não pode ser considerado um problema no arquivo de sintaxe de remarcação do Vim. A sintaxe original do Markdown não inclui nenhum bloco de código protegido, e a especificação CommonMark não define como as seqüências de informações devem ser formatadas.