HTML के रूप में एक फ़ाइल को सिंटैक्स-हाइलाइट करने के लिए विम को कैसे मजबूर करें?


120

मैं एक HTML फ़ाइल के रूप में फ़ाइल एक्सटेंशन के इलाज के लिए विम के सिंटैक्स हाइलाइटिंग को कैसे सेट करूं?

मैं ez टेम्पलेट का उपयोग कर रहा हूं, इसलिए फ़ाइल का एक्सटेंशन है .ezt। लेकिन इसका एक बहुत सामान्य HTML कोड है।

जवाबों:


109

आप इसे अपने .vimrc में भी डाल सकते हैं:

au BufReadPost *.ezt set syntax=html

E216: ऐसा कोई समूह या घटना नहीं है: BufLoad *। वाक्यविन्यास = html सेट करें ... मैं क्या गलत कर रहा हूं?
कार्तिक

2
यदि आप एक सटीक फ़ाइल नाम जैसे देते हैं तो मेरे अनुभव में यह दृष्टिकोण विफल हो जाएगा .myspecialdotfile। यह काम करने के लिए कहीं न कहीं इसमें एक स्टार की जरूरत है, भले ही यह सैद्धांतिक रूप से आवश्यक न हो।
सेलेडमनेडी

मेरे पास .vimrcDockerfiles के लिए मेरी फाइल में यह है कि विभिन्न प्रयोजनों के लिए एक्सटेंशन हैं। autocmd BufNewFile, BufRead Dockerfile * set filetype = docker बस का उपयोग कर Dockerfile*वाक्यविन्यास हाइलाइटिंग को काम करने से रोकता है vi Dockerfile- बैकस्लैश को जोड़ने से यह Dockerfile/ / के लिए काम करने की अनुमति देता हैDockerfile.somethingDockerfilesomething
एंड्रॉइड कंट्रोल

204
:set syntax=html

10
@pbr: जो बिल्कुल सवाल शीर्षक का जवाब देता है।
स्किप्पी ले ग्रांड गौरौ सेप

2
> "एक html फ़ाइल के रूप में एक फ़ाइल एक्सटेंशन का इलाज करें"
0atman

यह है कि क्या मैं के लिए देख रहा था :) है
niken

यह जानने में मदद मिल सकती है कि रनिंग :set syntaxवर्तमान में लागू की गई हाइलाइटिंग फ़ाइल को लौटा देगी
अरी

26

इस विम विकिया विषय पर एक नज़र डालें । कुछ उपयोगी सुझाव:

  • जैसा कि अन्य उत्तरों ने उल्लेख किया है, आप सिंटैक्स सेट करने के लिए vim सेट कमांड का उपयोग कर सकते हैं। :set syntax=<type>जहां <type>की तरह कुछ है perl, html, php, आदि

  • एक अन्य तंत्र है जिसका उपयोग सिंटैक्स हाइलाइटिंग को नियंत्रित करने के लिए किया जा सकता है filetype, या ftसंक्षिप्त रूप से। सिंटैक्स के समान, आप इसे इस प्रकार देते हैं :set filetype=html:। अन्य फ़ाइल प्रकार हैं perl, phpआदि

  • कभी-कभी विम "भूल" क्या वाक्यविन्यास का उपयोग करने के लिए, खासकर यदि आप php और HTML जैसी चीजों को एक साथ मिला रहे हैं। हाइलाइटिंग को रिफ्रेश करने के लिए कीबोर्ड शॉर्टकट Ctrl+ L( <C-L>) का उपयोग करें ।


सबसे बढ़िया उत्तर! +!
जे। एलन

17

ध्यान दें कि :set syntax=xmlठीक से हाइलाइट किया गया है, लेकिन ऐसा लगता है कि जब कोई फ़ाइल को स्वचालित करने का प्रयास कर रहा है (यानी चल रहा है gg=G)।

जब मैंने स्विच किया :set filetype=xml, तो हाइलाइटिंग ने ठीक से काम किया और फ़ाइल ने ठीक से इंडेंट किया।


14

एक .php फ़ाइल (या एक html फ़ाइल) में, आप कुछ आदेशों या सेटिंग्स को बाध्य करने के लिए एक विम मॉडेल का उपयोग कर सकते हैं :

 1 /* vim: syntax=javascript
 2  *
 3  * .submit_norefresh()
 ~
 ~

2
आपका मतलब है मॉडलाइन
शम्मेल ली

कभी-कभी au ...मेरे ~/.vimrcकुछ वाक्य-विन्यास से संबंधित सेटिंग्स को कुछ फाइलों के लिए अनदेखा कर दिया जाता है (संभवतः संशोधित मेटाडेटा के कारण?)। उस फ़ाइल की सामग्री को एक ताज़ा फ़ाइल पर कॉपी करने के अलावा, उस फ़ाइल के शीर्ष पर एक मॉडलइन स्थापित करना काम करता है। उदाहरण के लिए, एक BASH स्क्रिप्ट के लिए, एक दूसरी पंक्ति को जोड़ने के # vim: syntax=shबाद, शबंग (पहली पंक्ति:) #!/bin/bashकाम करने लगती है, मज़बूती से। चूँकि यह मूल रूप से एक "टिप्पणी" है, मैं सिर्फ दोनों पंक्तियों को अपने sbb("शबंग बैश") स्निपेट में शामिल करता हूँ।
विक्टोरिया स्टुअर्ट

13

इसे स्वचालित बनाने के लिए, इस पंक्ति को अपने में जोड़ें ~/.vimrc:

autocmd BufNewFile,BufRead *.ezt set filetype=html

यदि आप इसे वर्तमान फ़ाइल के लिए करना चाहते हैं, तो टाइप करें:

:set filetype=html

आप syntaxइसके बजाय स्थानापन्न भी कर सकते हैं filetype, लेकिन सिंटैक्स हाइलाइटिंग, इंडेंटिंग नियम और प्लगइन्स सहित () filetypeसे अधिक चीजों को प्रभावित करता हैsyntax , इसलिए आम तौर पर आपको filetypeतब तक उपयोग करना चाहिए जब तक आप केवल प्रभावित नहीं करना चाहते syntax

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.