Як зауважує Пітер Рінкер , стандартне форматування розмітки Vim вже включає підтримку виділення r
коду в " блокованому кодовому блоці", і щоб його активувати, вам просто потрібно встановити глобальну змінну з кодом у вашому vimrc
:
let g:markdown_fenced_languages = ['r']
Однак, зробивши це, ви побачите, що блоки коду в'язання все ще не виділяються.
Це пояснюється тим, що в'язальниця використовує форматування Pandoc інформаційних рядків для того, щоб розмежувати R-код, який повинен запускатися від звичайного блоку коду , а регулярне виділення Vim Markdown не підтримує це 1 .
Найпростіший спосіб виправити це - вручну додати додатковий елемент синтаксису для відповідності цьому типу кодового блоку, додавши наступний рядок у ~/.vim/after/syntax/markdown.vim
syntax region markdownHighlightr matchgroup=markdownCodeDelimiter start=/^\s*```{r}.*$/ end=/^\s*```\ze\s*$/ keepend contains=@markdownHighlightr
Ви також можете розглянути можливість встановлення плагіна Vim для виділення Pandoc, який, імовірно, підтримує це поза коробкою.
1: Це насправді не можна вважати проблемою у файлі синтаксису розмітки Vim. Оригінальний синтаксис Markdown не включає обгороджений блоки коди на всіх, і CommonMark специфікація не визначає , як інформацію рядок повинна бути відформатована.