2010-03-07 9 views
9

में एक emacs फ़ाइल को खोला जाना चाहिए, फ़ाइल के भीतर एक टिप्पणी के रूप में, मैं यह कैसे लिख सकता हूं, यह तरीका कि इस विशेष फ़ाइल को emacs में खोला जाना चाहिए? उदाहरण के लिए, मान लीजिए कि मेरे पास "foo" नामक एक स्क्रिप्ट है। foo के शरीर में, मैं की तरह कुछ डाल करने के लिए करना चाहते हैं:मोड को घोषित करना

# sh-mode 
# rest of my script here... 

emacs करने के लिए कि "श-मोड" जब "foo" Emacs में खोला जाता है किया जाना चाहिए। नोट, मैं इसे .emacs से फ़ाइल एक्सटेंशन द्वारा नहीं करना चाहता हूं। यहां बिंदु यह है कि "foo" का फ़ाइल नाम यह नहीं कहता कि यह किस प्रकार की फ़ाइल है - मैं चाहता हूं कि फ़ाइल के भीतर से ही निर्दिष्ट किया जाए। क्या इसे करने का कोई तरीका है?

धन्यवाद। फ़ाइल के शीर्ष पर

# -*- mode: sh -*- 

:

उत्तर

20

मैं आमतौर पर की तरह कुछ जोड़ सकते हैं। अधिक जानकारी के लिए emacs documentation देखें।

+0

आप भी ### स्थानीय चर जोड़ सकते हैं: फ़ाइल के अंत में ' : ### मोड: लेटेक्स ### समाप्ति –

2

जादू-मोड-एलीस्ट भी देखें।

magic-mode-alist is a variable defined in `files.el'. 

Documentation: 
Alist of buffer beginnings vs. corresponding major mode functions. 
Each element looks like (REGEXP . FUNCTION) or (MATCH-FUNCTION . FUNCTION). 
After visiting a file, if REGEXP matches the text at the beginning of the 
buffer, or calling MATCH-FUNCTION returns non-nil, `normal-mode' will 
call FUNCTION rather than allowing `auto-mode-alist' to decide the buffer's 
major mode. 

If FUNCTION is nil, then it is not called. (That is a way of saying 
"allow `auto-mode-alist' to decide for these files.") 
4

आप फ़ाइल स्थानीय चर निर्दिष्ट कर सकते हैं कि emacs किसी भी फ़ाइल की पहली या दूसरी पंक्ति (और अधिक) में उपयोग करता है।

अधिक जानकारी के लिए देखें: http://www.gnu.org/software/emacs/manual/html_node/emacs/Specifying-File-Variables.html#Specifying-File-Variables

अपने मामले के लिए

तो आप का उपयोग कर सकते हैं:

# -*- mode: sh; -*- 

का आनंद लें!

7

ध्यान दें कि यदि पहली पंक्ति हैश-बैंग टिप्पणी है, तो Emacs फ़ाइल के प्रकार की सही ढंग से पहचान भी करेगा, उदा।

#!/bin/sh 
संबंधित मुद्दे