कैसे emacs जावास्क्रिप्ट मोड में इंडेंटेशन चौड़ाई को बदलने के लिए


120

मैं 4. के बजाय अपने इंडेंट के लिए 2 स्पेस का उपयोग करना चाहता हूं। मैं सी मोड के डिफ़ॉल्ट व्यवहार का उपयोग करके बदल सकता हूं:

(setq c-basic-offset 2)

मैं इसे जावास्क्रिप्ट मोड में कैसे बदलूं?

जवाबों:


198

js-indent-level डिफ़ॉल्ट जावास्क्रिप्ट-मोड में इस्तेमाल किया जा सकता है, जो 23.2 emacs में डिफ़ॉल्ट रूप से शुरू करके शामिल है।

(setq js-indent-level 2)

आपको वही करना चाहिए जो आप देख रहे हैं। यदि आप emacs के पुराने संस्करण का उपयोग कर रहे हैं, तो आप जावा-मोड में हो सकते हैं। मुझे लगता है कि यह विधा जवाब देती है c-basic-offset, हालांकि मैं गलत हो सकता हूं।


2
(सेट-डिफाल्ट-टैब-चौड़ाई २) जावा-मोड के लिए संबंधित टैब चौड़ाई सेटर होगा
फर्जी

इस तंत्र का उपयोग टैब की चौड़ाई 8 पर रहता है और इसलिए टैब का उपयोग केवल तभी किया जाता है जब इंडेंट स्तर 4 (2x4 = 8) या अधिक हो। आप टैब की चौड़ाई 2 या 4 कैसे सेट करते हैं ताकि रिक्त स्थान के बजाय टैब का उपयोग किया जाए? मैं सेटिंग्स का एक गुच्छा की कोशिश की है, उदाहरण के लिए (सेट टैब-चौड़ाई 4), लेकिन कोई फायदा नहीं हुआ। मेरा लक्ष्य: टैब चौड़ाई 4 का उपयोग करें, और केवल टैब वर्ण (स्थान नहीं विकल्प के रूप में) का उपयोग करें।
17

jdp: कोशिश करो (defun my-javascript-mode-hook () (setq indent-tabs-mode t tab-width 4 js-indent-level 4)) (add-hook 'javascript-mode-hook 'my-javascript-mode-hook)
फिल्स

का उपयोग करें js-mode-hook, जैसे:(defun my-js-mode-hook () (setq indent-tabs-mode t tab-width 4 js-indent-level 4)) (add-hook 'js-mode-hook 'my-js-mode-hook)
skeltoac

6
क्या यह कहीं भी प्रलेखित है? क्या स्टैकओवरफ्लो के बिना इस जानकारी को खोजने का एक तरीका था? मैंने M-x hjs-mode से देखा , लेकिन वहां कुछ भी नहीं मिला।
चार्ल्स होलब्रो

75

काश, किसी ने मुझे कस्टम के बारे में बहुत जल्द बताया था! शायद यह मेरी तरह एक और मात्र नश्वर मदद करेगा;)

कस्टम आह्वान करें:

M-x customize

फिर, "प्रोग्रामिंग," और फिर "भाषाएं" चुनें और फिर अनुकूलित करने के लिए एक भाषा / मोड का चयन करें। जैसा कि आप फिट देखते हैं विकल्पों को संपादित करें। जब किया जाता है, तो "वर्तमान सत्र के लिए सहेजें" या "भविष्य के सत्रों के लिए सहेजें" चुनें।


17

यदि आप js2- मोड का उपयोग कर रहे हैं (जो अधिक शक्तिशाली IMHO है), तो कमांड है:

(setq-default js2-basic-offset 2)

स्रोत।


11

आप टैब के बजाय रिक्त स्थान का उपयोग करने के लिए emacs सेट करना चाह सकते हैं

(setq-default indent-tabs-mode nil)

यह एक टिप्पणी है और फिर वास्तविक उत्तर है। टिप्पणी करने में सक्षम होने के लिए अधिक प्रतिष्ठा अर्जित करें।
ज्यूकिक

2

मेरी javascript.el फ़ाइल (/ usr / share / emacs / साइट-लिस्प) में मैंने पाया

जावास्क्रिप्ट-इंडेंट-स्तर ४

इसलिए यदि आप एक ही लिस्प-मोड का उपयोग कर रहे हैं, तो आप इसे चलाकर बदल सकते हैं

(setq javascript-indent-level 2)

2

आप भी उपयोग कर सकते हैं

M-x customize-variable

और प्रकार

js-indent-level

( js-[TAB] विकल्पों की सूची दिखाता है)। फिर Js Indent Levelजैसा चाहें वैसा बदलें और क्लिक करें [State:]और सेव करें।


2

EditorConfig का उपयोग करना भी एक अच्छा विचार हो सकता है। और हां, Emacs के पास इसके लिए एक मोड था Editorconfig-emacs

यह M-x package-list-packagesमेलपा या मुरब्बा के माध्यम से पैकेज मैनेजर में भी उपलब्ध है ।


2

यदि आप इसे प्रति फ़ाइल के आधार पर बदलना चाहते हैं, तो इसे अपनी फ़ाइल के शीर्ष पर रखें:

// -*- mode: js; js-indent-level: 2; -*-

0

एमएसीएस 26 में अपग्रेड करने के बाद इनमें से कोई भी समाधान मेरे लिए काम नहीं करता था (मैं पहले से ही js-indent-level2 पर सेट हो गया था लेकिन मेरी टैब चौड़ाई 8 पर वापस चली गई थी), लेकिन जो काम किया गया वह tab-widthचर को सेट कर रहा था 2, जो पुराने default-tab-widthचर को प्रतिस्थापित करता प्रतीत होता है ।

मैंने इसे M-x customizeखोज कर पाया tab width

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.