वेब-मोड हमेशा रिक्त स्थान के साथ इंडेंट करें


10

मैं emacs वेब-मोड का उपयोग कर रहा हूं , और JS फ़ाइलों में टैबिंग अजीब तरीके से काम कर रहा है।

मैंने 2 स्थानों को इंडेंट करने के लिए टैब सेट किया है, लेकिन जब इंडेंट 8 स्थानों पर पहुंचता है, तो वेब-मोड उन्हें एक टैब में बदल देता है, और फिर दूसरे 8 तक पहुंचने तक 2 स्थानों को टैब करना जारी रखता है, और इसे दूसरे टैब में परिवर्तित करता है, आदि।

क्या मैं इसे होने से रोक सकता हूं और केवल कभी इंडेंट स्पेस के लिए emacs / वेब-मोड बता सकता हूं?

संपादित करें:

यहाँ एक छोटा नेस्टेड फ़ंक्शन उदाहरण है:

(function() {
  function() {
    function() {
      function() {
    function() {
      // Indenting problem.
    }
      }
    }
  }
})()

यह स्पष्ट रूप से Emacs में ठीक दिखाई दे रहा है, लेकिन आप यहाँ इंडेंटेशन समस्या देख सकते हैं।

मैं यहां ध्यान दूंगा कि यह जावास्क्रिप्ट-मोड में भी होता है।


1
क्या यह वेब मोड के लिए विशिष्ट है? या कहीं भी होता है?
— मालाबार

यह केवल वेब-मोड पर हो रहा है, बाकी सब कुछ रिक्त स्थान के साथ अनिश्चित काल के लिए ठीक है।
— मरकुस

क्षमा करें, जावास्क्रिप्ट मोड भी यही काम करता है। लेकिन यह सिर्फ उन दो है।
— मृत्यु 23

जो javascript-modeआप उपयोग कर रहे हैं, बिल्टिन एक? इसके अलावा, क्या यह तब होता है जब html में इंडेंट करना web-mode?
— dgtized

कृपया अपनी इनिट फ़ाइल की सामग्री पोस्ट करें। एमएसीएस डिफ़ॉल्ट रूप से 8 रिक्त स्थान के लिए एक टैब का उपयोग करता है, इसलिए अधिकांश मोड के लिए इसे बंद करने के लिए आपकी इनिट फ़ाइल में कुछ होना चाहिए।
— गिल्स एसओ- बुराई को रोकना '

जवाबों:


10

सामान्य तौर पर, यदि आप केवल रिक्त स्थान का उपयोग करने के लिए इंडेंटेशन चाहते हैं, तो मैं अनुकूलित करने की सलाह दूंगा:

(setq-default indent-tabs-mode nil)

यह रिक्त स्थान और कोई टैब का उपयोग करने के लिए इंडेंटेशन को मजबूर करता है। मुझे यकीन नहीं है कि अगर web-modeइंडेंटेशन के लिए नियमित तरीकों का उपयोग किया जाता है, तो हो सकता है कि यह इसका सम्मान न करे।

क्या आप एक उदाहरण फ़ाइल प्रदर्शित करने के लिए दे सकते हैं?


3
प्रश्न के लिए एक उदाहरण जोड़ा है। जोड़ना (setq indent-tabs-mode nil)दोनों में web-modeऔर कुछ भी बदलने के लिए प्रतीत नहीं होता है javascript-mode।
— मरकुस

3
मुझे लगता है कि आपको बफर-लोकल होने के setq-defaultकारण उपयोग करना चाहिए indent-tabs-mode।
— nperson325681

@progo ठीक है, कि काम किया। बहुत बहुत धन्यवाद।
— डाइयूवे

1
क्या केवल टैब के साथ इंडेंट करना संभव है? मैं अलग सेटिंग्स की कोशिश की है, लेकिन यह केवल मिश्रित टैब / रिक्त स्थान के साथ संकेत देता है।
— Dfr

1
@Dfr आप जोड़ना चाहिए (setq-default indent-tabs-mode t)अपने में.emacs
— fxbois

3

वेब-मोड इंडेंट को बाध्य करने के लिए कृपया इस कोड को अपनी इमैक कॉन्फ़िग फ़ाइल में आज़माएँ। मैंने इसे वेब-मोड होम-पेज से संदर्भित किया ।

(require 'web-mode)
(defun my-web-mode-hook ()
  "Hooks for Web mode."
  (setq web-mode-markup-indent-offset 2)
)
(add-hook 'web-mode-hook  'my-web-mode-hook)

यह भी चलेगा? (add-hook 'web-mode-hook (lambda () (setq web-mode-markup-indent-offset 2)))
— एंड्रयू लैमर्रा
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.