मैं उस फ़ाइल के Emacs स्थानीय चर में फ़ाइल के लिए शेल संस्करण को कैसे निर्दिष्ट कर सकता हूं, जब फ़ाइल एक स्टैंडअलोन प्रोग्राम नहीं है?
Emacs मुझे यह निर्दिष्ट करने की अनुमति देता है कि एक शेल शामिल फ़ाइल को sh
मोड में खोला जाना चाहिए , संपादक संकेत में एक स्थानीय चर सेट करके:
# Local variables:
# coding: utf-8
# mode: sh
# End:
# vim: fileencoding=utf-8 filetype=bash :
मैं विम को निर्दिष्ट कर सकता हूं कि फ़ाइल का शैल संस्करण विशेष रूप से बैश है, और यह संपादक बैश को विशिष्ट बैश सिंटैक्स हाइलाइटिंग प्रस्तुत करने के लिए मानता है। लेकिन Emacs में sh
मोड है जो सभी शेल वेरिएंट को कवर करता है।
Emacs ठीक से इस तरह की फाइल की व्याख्या करेगा यदि इसमें एक शेबंग लाइन (जैसे #! /bin/bash
) है। लेकिन कुछ फाइलें स्टैंड-अलोन प्रोग्राम नहीं होती हैं, इसलिए मैं नहीं चाहता कि उन लोगों के पास एक शेबंग लाइन हो।
Emacs sh
मोड उन फ़ाइलों को Posix शेल सिंटैक्स के रूप में मानता है, जो वे नहीं हैं। sh
मोड में शेल सिंटैक्स के "संस्करण" की अवधारणा है; लेकिन मैं यह पता लगाने में असमर्थ हूं कि फ़ाइल के संपादक संकेत में निर्दिष्ट कैसे करें, फ़ाइल के लिए किस संस्करण का उपयोग करना है।
मैं Emacs को यह बताने के लिए फ़ाइल में संपादक संकेत कैसे सेट कर सकता हूं कि उसका सिंटैक्स बैश है?
अद्यतन 2014-04-24: मैंने इस लापता व्यवहार के लिए Emacs bug # 17333 की सूचना दी है।
NEWS
फ़ाइल कहा गया है कि "श-मोड में आप अब उपयोग कर सकते हैं sh-shell
का उपयोग करें (में खोल के प्रकार को निर्दिष्ट करने के लिए फ़ाइल-स्थानीय चर के रूप में bash
, csh
, आदि)।"
sh-shell
में फ़ाइल-स्थानीय चर के रूप में सेट करना जितना आसान होगा । वाह! तब तक, नीचे दिया गया मेरा जवाब वास्तव में एक स्पष्ट शेबांग रेखा को जोड़ने के बिना काम करता है (इसके विपरीत, बिग्नेज़ की शुरुआती छाप नहीं है)।