मैं विम और इसके सिंटैक्स हाइलाइटिंग के बारे में अधिक जानने का निर्णय लेता हूं। दूसरों के लिए उदाहरणों का उपयोग करके, मैं मार्कडाउन के लिए अपनी खुद की वाक्यविन्यास फ़ाइल बना रहा हूं। मैंने mkd.vim देखा है और इसमें भी यह समस्या है। मेरी समस्या सूची आइटम और कोड ब्लॉक हाइलाइटिंग के बीच है।विम मार्कडाउन हाइलाइटिंग (सूची आइटम और कोड ब्लॉक विवाद)
कोड ब्लॉक definition:
- पहली पंक्ति खाली
- दूसरी पंक्ति कम से कम 4 रिक्त स्थान या 1 टैब
- ब्लॉक एक रिक्त पंक्ति
उदाहरण के साथ समाप्त हो गया है के साथ शुरू होता है:
Regular text
this is code, monospaced and left untouched by markdown
another line of code
Regular Text
मेरे विम वाक्य रचना कोड ब्लॉक के लिए:
syn match mkdCodeBlock /\(\s\{4,}\|\t\{1,}\).*\n/ contained nextgroup=mkdCodeBlock
hi link mkdCodeBlock comment
Unorder सूची आइटम definition:
- पहली पंक्ति खाली है
- दूसरी पंक्ति के साथ शुरू होता है एक [- + *] फिर एक रिक्ति
- सूची रिक्त रेखा के साथ समाप्त हो जाती है, फिर एक सामान्य (गैर-सूची) रेखा
- लाइन आइटमों के बीच में रिक्त लाइनों को जोड़ा जा सकता है
- एक उप सूची इंडेंट (4 अंतरिक्ष या 1 टैब) द्वारा निर्दिष्ट किया जाता
- एक सूची आइटम के बाद सामान्य पाठ की एक पंक्ति है कि सूची आइटम के एक निरंतरता के रूप में शामिल है
उदाहरण:
Regular text
- item 1
- sub item 1
- sub item 2
- item 2
this is part of item 2
so is this
- item 3, still in the same list
- sub item 1
- sub item 2
Regular text, list ends above
unorder सूची आइटम परिभाषा के लिए मेरे विम वाक्य रचना (मैं केवल [-+*]
पर प्रकाश डाला):
syn region mkdListItem start=/\s*[-*+]\s\+/ matchgroup=pdcListText end=".*" contained nextgroup=mkdListItem,mkdListSkipNL [email protected] skipnl
syn match mkdListSkipNL /\s*\n/ contained nextgroup=mkdListItem,mkdListSkipNL skipnl
hi link mkdListItem operator
मैं highli नहीं मिल सकता है सूची के लिए और कोड ब्लॉक के साथ पिछले दो नियमों के साथ काम करने के लिए गेटिंग।
यह एक उदाहरण है कि मेरे वाक्य रचना हाइलाइटिंग टूट जाता है:
Regular text
- Item 1
- Item 2
part of item 2
- these 2 line should be highlighted as a list item
- but they are highlighted as a code block
मैं वर्तमान को समझ नहीं सकता कैसे हाइलाइटिंग तरीके से काम करने के लिए मैं चाहता हूँ कि यह बहुत
एक जोड़ने के लिए भूल "वैश्विक" वाक्यविन्यास नियम नीचे सूचीबद्ध दोनों नियमों में उपयोग किया जाता है। यह सुनिश्चित करना है कि वे एक खाली रेखा से शुरू करें।
syn match mkdBlankLine /^\s*\n/ nextgroup=mkdCodeBlock,mkdListItem transparent
एक और नोट: मैं और अधिक स्पष्ट किया जाना चाहिए था।
syn match mkdCodeBlock /\(\s\{4,}\|\t\{1,}\).*\n/ contained nextgroup=mkdCodeBlock
hi link mkdCodeBlock comment
syn region mkdListItem start=/\s*[-*+]\s\+/ matchgroup=pdcListText end=".*" contained nextgroup=mkdListItem,mkdListSkipNL [email protected] skipnl
syn match mkdListSkipNL /\s*\n/ contained nextgroup=mkdListItem,mkdListSkipNL skipnl
hi link mkdListItem operator
syn match mkdBlankLine /^\s*\n/ nextgroup=mkdCodeBlock,mkdListItem transparent
विम प्रलेखन :help :syn-define
में कहते हैं: मेरी वाक्य रचना फ़ाइल में सूची नियमों से पहले Blockquote नियम
कूल। अंततः मुझे विम स्क्रिप्टिंग सीखना चाहता है। :) – jop