2009-02-10 17 views
11

मैं एक टैब व्यक्ति हूं। जब तक कि मैं एक ऐसी परियोजना पर काम नहीं कर रहा हूं जो पहले से ही रिक्त स्थान का उपयोग कर रहा है, मैं टैब का उपयोग करता हूं। मैं ज्यादातर PHP और एचटीएमएल काम करते हैं। मुझे PHP में अच्छी तरह से काम करने वाले टैब मिल गए हैं। लेकिन मैं यह नहीं समझ सकता कि दो रिक्त स्थानों के बजाय HTML मोड का उपयोग टैब कैसे करें।Emacs में HTML मोड में टैब

(setq c-default-style "python") 
(setq-default c-basic-offset 4 
       tab-width 4 
       indent-tabs-mode t) 

क्या मैं इतनी निर्धारित कर सकते हैं कि एचटीएमएल मोड के टैब का उपयोग करेगा:

यहाँ मैं अब तक किया है?

उत्तर

26
(add-hook 'html-mode-hook 
      (lambda() 
      (setq sgml-basic-offset 4) 
      (setq indent-tabs-mode t))) 

यह काम करता है क्योंकि जब indent-tabs-modet है, Emacs 'डिफ़ॉल्ट खरोज तर्क टैब जब भी यह जबकि अभी भी उचित स्तंभ खरोज के लिए ऑफसेट संरक्षण कर सकते हैं के साथ रिक्त स्थान बदल देता है। तो उदाहरण के लिए यदि आपका कोड प्रति इंडेंटेशन स्तर के चार वर्णों (यानी sgml-basic-offset4 है) के रूप में ऑफ़सेट होना चाहिए, तो आपके कोड को दो स्तरों को गहराई से इंडेंट किया जाना चाहिए, और प्रति इंडेंटेशन स्तर के चार कॉलम हैं, फिर Emacs गणना करता है कि अगर यह दो टैब और शून्य रिक्त स्थान के साथ इंडेंट करता है, जिसके परिणामस्वरूप उचित कॉलम ऑफसेट होगा।

इसका मतलब यह भी है कि अगर आप अपने tab-width से गड़बड़ कर चुके हैं तो उपरोक्त सही काम नहीं करेगा। उदाहरण के लिए यदि आप इसे 8 पर सेट करते हैं और एक स्तर गहरा इंडेंट कर रहे हैं, तो Emacs गणना करता है कि भले ही यह केवल एक टैब को सम्मिलित करता है, दृश्य कॉलम ऑफसेट (8) वांछित ऑफसेट (4) से बड़ा होगा। तो यह इसके बजाय चार रिक्त स्थान डालेगा। sgml-basic-offset को अपनी tab-width जैसी चीज़ों पर सेट करने का प्रयास करें।

+1

क्या मैं कुछ गलत कर रहा था? उस कोड का मेरे लिए कोई प्रभाव नहीं है। Emacs चल रहा है 22.3.1 बीटीडब्ल्यू। – Echo

+0

क्या आप एचटीएमएल मोड का उपयोग कर रहे हैं जिसे emacs या किसी तृतीय पक्ष के साथ भेजा जाता है? –

+0

बस डिफ़ॉल्ट एचटीएमएल-मोड जो emacs के साथ भेज दिया जाता है। – Echo

2

असल में, इंडेंट-टैब-मोड डिफ़ॉल्ट रूप से टी होना चाहिए।

एम-आई, बस एक लार्क के लिए प्रयास करें। उसमें एक टैब अक्षर डालना चाहिए। यह एक महान समाधान नहीं है, लेकिन यह एक चुटकी में काम कर सकता है।

ALSO, आपने स्पेस बनाम टैब के लिए परीक्षण कैसे किया? इसे पार करना? या इसे हटा रहा है? हो सकता है कि आपके पास 'हेड-डिलीट-चार-अवांछित' हो, उसके सिर का पालन करें।

+0

हाँ, मैंने पहले से ही बफर को मारने और फिर से खोलने और emacs को पुनरारंभ करने का प्रयास किया था। – Echo

संबंधित मुद्दे