जब मैं स्क्रिप्ट बनाने के लिए vi का उपयोग करता हूं, तो यह कोई सिंटैक्स हाइलाइटिंग नहीं दिखाता है। लेकिन एक बार जब मैं vi से बाहर निकलता हूं और स्क्रिप्ट को फिर से खोलने के लिए vi का उपयोग करता हूं, तो यह वाक्य रचना को उजागर करेगा। जब मैं फ़ाइल बनाता हूं तो पहली बार सिंटैक्स को हाइलाइट करना चाहता हूं। तो क्या मेरे कॉन्फ़िगरेशन में कुछ गड़बड़ है या यह सामान्य स्थिति है?
2 जवाब
जब विम फ़ाइल खोलता है, तो यह सिंटैक्स हाइलाइटिंग को सक्षम करने के लिए फ़ाइल प्रकार का अनुमान लगाने का प्रयास करता है। जब आप "माइस्क्रिप्ट" नामक एक नई फ़ाइल खोलते हैं, तो प्रकार का अनुमान लगाने के लिए विम के पास कुछ भी नहीं है।
जब आप फ़ाइल लिखते हैं, तो आपके द्वारा लिखी जाने वाली पहली फ़ाइल #!/bin/sh
(या समान) होती है, उसके बाद शेष स्क्रिप्ट होती है। इस बिंदु तक, विम ने पहले ही निर्धारित कर लिया है कि यह एक सादा पाठ फ़ाइल है, और सिंटैक्स हाइलाइटिंग नहीं करता है।
जब आप फ़ाइल को फिर से खोलते हैं, तो विम फ़ाइल की पहली पंक्ति देखता है, और समझता है कि यह एक शेल स्क्रिप्ट है। यह प्रकार को उचित रूप से सेट करता है, और सिंटैक्स जादू करता है।
हल करने के लिए, या तो फ़ाइल को एक एक्सटेंशन के साथ नाम दें जो इसके प्रकार का सुझाव देता है ("myscript.sh" नामक एक खाली फ़ाइल, संभवतः, एक शेल स्क्रिप्ट है), या मैन्युअल रूप से :set filetype=sh
का उपयोग करके प्रकार सेट करें।
व्यक्तिगत रूप से, मुझे पहला फॉर्म बदसूरत लगता है (फ़ाइल नाम में फ़ाइल प्रकार क्यों शामिल करें?), और दूसरा याद रखना मुश्किल है। मैं बस फ़ाइल को बंद और दोबारा खोलता हूं :-)
Vi आमतौर पर फ़ाइल नाम एक्सटेंशन से उपयोग किए जाने वाले सिंटैक्स हाइलाइटिंग के प्रकार का अनुमान लगाता है। यदि आप किसी ऐसी फ़ाइल का संपादन कर रहे हैं जिसका अभी तक कोई नाम नहीं है, तो आपको उसे यह बताना होगा कि हाइलाइट कैसे करें:
:set filetype=html
संबंधित सवाल
नए सवाल
linux
LINUX QUESTIONS को संबंधित होना चाहिए। इस टैग का उपयोग केवल तभी करें जब आपका प्रश्न लिनक्स एपीआई या लिनक्स-विशिष्ट व्यवहार का उपयोग करके प्रोग्रामिंग से संबंधित हो, न कि केवल इसलिए कि आप लिनक्स पर अपने कोड को चलाने के लिए होते हैं। यदि आपको लिनक्स समर्थन की आवश्यकता है तो आप https://unix.stackexchange.com या विशिष्ट लिनक्स वितरण की स्टैक एक्सचेंज साइट जैसे https://askubuntu.com या https://elementaryos.stackexchange.com/ की कोशिश कर सकते हैं