ในฐานะที่เป็นบันทึกปีเตอร์ Rincker , markdown มาตรฐานที่เป็นกลุ่มของการจัดรูปแบบอยู่แล้วรวมถึงการสนับสนุนสำหรับไฮไลต์r
รหัสภายใน "รั้วป้องกันรหัส" และเปิดใช้งานได้คุณก็ต้องตั้งค่าตัวแปรระดับโลกที่มีรหัสของคุณvimrc
:
let g:markdown_fenced_languages = ['r']
อย่างไรก็ตามหลังจากทำเช่นนั้นคุณจะพบว่าบล็อกรหัส knitr ของคุณยังไม่ถูกเน้นสี
เพราะนี่คือ knitr ใช้ Pandoc ของการจัดรูปแบบของสตริงข้อมูลเพื่อรหัส R ความแตกต่างที่จะถูกเรียกใช้จากการป้องกันรหัสปกติและเป็นกลุ่มปกติ 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: สิ่งนี้ไม่อาจถือได้ว่าเป็นปัญหาในไฟล์ไวยากรณ์ของ markdown ของ Vim ไวยากรณ์ Markdown เดิมไม่ได้รวมถึงการไม่พอใจบล็อกรหัสที่ทุกคนและCommonMark สเปคไม่ได้กำหนดวิธีการสตริงข้อมูลควรจัดรูปแบบ