Như Peter Rincker lưu ý , định dạng đánh dấu tiêu chuẩn của Vim đã bao gồm hỗ trợ làm nổi bật r
mã trong "khối mã có rào chắn" và để bật nó, bạn chỉ cần đặt biến toàn cục với mã trong vimrc
:
let g:markdown_fenced_languages = ['r']
Tuy nhiên, sau khi làm như vậy, bạn sẽ thấy rằng các khối mã đan của bạn vẫn không được tô sáng.
Điều này là do đanr sử dụng định dạng chuỗi thông tin của Pandoc để phân biệt mã R được chạy từ khối mã thông thường và đánh dấu Markdown thông thường của Vim không hỗ trợ điều này 1 .
Cách dễ nhất để khắc phục điều này là thêm thủ công một mục cú pháp bổ sung để khớp với loại khối mã này bằng cách thêm dòng sau vào ~/.vim/after/syntax/markdown.vim
syntax region markdownHighlightr matchgroup=markdownCodeDelimiter start=/^\s*```{r}.*$/ end=/^\s*```\ze\s*$/ keepend contains=@markdownHighlightr
Bạn cũng có thể xem xét việc cài đặt một plugin Vim để làm nổi bật Pandoc, có lẽ sẽ hỗ trợ việc này ra khỏi hộp.
1: Điều này thực sự không thể được coi là một vấn đề trong tệp cú pháp đánh dấu của Vim. Các cú pháp Markdown gốc không bao gồm khối mã rào ở tất cả, và CommonMark đặc tả không định nghĩa thế nào chuỗi thông tin nên được định dạng.