تركيب جزءا لا يتجزأ من تسليط الضوء في فيم
-
21-08-2019 - |
سؤال
ولدي تنسيق ملف XML المخصصة التي يمكن أن تحتوي على كتل من التعليمات البرمجية في بعض العلامات.
وعلى سبيل المثال:
<Root>
<Sql> select * from foo </Sql>
<MoreJunk> ... </MoreJunk>
<Python><![CDATA[
def Bar(*args):
return False
]]></Python>
</Root>
وكيف يمكنني الحصول على فيم استخدام جملة SQL لتسليط الضوء على النص داخل علامات <Sql>
واستخدام بايثون higlighting عن نص داخل علامات <Python>
؟
وأنا أعرف فيم يمكن القيام به بالفعل هذا لأنه يسلط الضوء جافا سكريبت داخل ملفات HTML بشكل صحيح.
وحاولت تفقد ملف HTML في بناء الجملة ولكن لم أستطع ذلك.
المحلول
لXML الخاصة بك مع المثال الثعبان قد تضطر إلى القيام بشيء من هذا القبيل:
runtime! syntax/xml.vim
unlet b:current_syntax
syntax include @Python syntax/python.vim
syntax region pythonCode start=+<Python>+ keepend end=+/</Python>+ contains=@Python
وستشمل هذه الخطوط بناء الجملة XML وبناء الجملة الثعبان، ومنطقة الثعبان لتحديد مكان وVIM استخدم بناء الجملة الثعبان بدلا من بناء الجملة XML ...
وبطبيعة الحال، كل هذا تم توثيقه جيدا في VIM. انظر> م>: هو: اصطناعي-تضمين م> حول كيفية تضمين الملفات في بناء الجملة