मैं प्रति टैब में दो स्थानों को इंडेंट करने के लिए सबलाइम टेक्स्ट को कैसे बाध्य करूं?


504

क्या रूबी फ़ाइलों के साथ काम करते समय हमेशा दो स्थानों को प्रति टैब पर इंडेंट करने के लिए सबलाइम टेक्स्ट 2 को मजबूर करने का एक तरीका है?

मुझे पता है कि view -> indentationमेनू विकल्प के तहत इंडेंटेशन सेट किया जा सकता है, लेकिन यह छड़ी नहीं करता है। हर बार जब मैं एक नई फ़ाइल और हिट टैब खोलता हूं, तो यह चार स्थानों पर वापस लौट जाती है।


उदात्त डिफ़ॉल्ट रूप से थोड़ा अलग / अजीब है। हालाँकि यह फ़ाइल को कई स्थानों के साथ सहेज सकता है, लेकिन अगर यह इसे इंडेंटेशन के रूप में पहचानता है तो यह संपादक दोनों स्थानों को हटा देता है।
लाइम

जवाबों:


899

यदि आप इसे सभी फाइलों के लिए चाहते हैं, तो जाएंPreferences -> Settings - Default/User । लेकिन नीचे दी गई कई टिप्पणियों से संकेत मिलता है कि सिंटैक्स की विशिष्ट सेटिंग्स इसे केवल उन भाषाओं तक सीमित कर सकती हैं जिन्हें आप चुनते हैं।

रूबी फ़ाइलों के लिए इस कॉन्फ़िगरेशन को सीमित करने के लिए, पहले संपादक में एक रूबी फ़ाइल खोलें, और फिर पर जाएं Preferences -> Settings - Syntax Specific। यह एक सेटिंग विंडो खोलनी चाहिए जिसका नाम हैRuby.sublime-settings

इन सेटिंग्स को सहेजें:

{
  "tab_size": 2,
  "translate_tabs_to_spaces": true,
  "detect_indentation": false
}

किसी अन्य सिंटैक्स प्रकार के लिए दोहराएँ उस प्रकार की फ़ाइल को खोलकर और उस सिंटैक्स के लिए सही वरीयताएँ फ़ाइल खोलने के लिए वरीयताओं पर वापस जा सकते हैं।

मैंने टिप्पणियों में अनुरोधों के अनुसार "डिटेक्ट_इंडेंटेशन" लाइन को शामिल करने के लिए इसे संपादित किया है; मैंने पहले अपने टैब का आकार सेट करने के लिए डिफ़ॉल्ट / उपयोगकर्ता का उपयोग किया था, और टैब का पता लगाने की आवश्यकता नहीं थी, लेकिन क्या यह वैश्विक कॉन्फ़िगरेशन के कारण है या इस तथ्य के कारण कि मैंने शायद ही कभी टैब के साथ फाइलें खोली हैं, मुझे नहीं पता।

पुनरारंभ करना आवश्यक नहीं होना चाहिए, हालांकि कुछ उदाहरणों में यह हो सकता है।


11
बिल्ड 2181 से। आप वरीयताएँ -> सेटिंग्स - डिफ़ॉल्ट / उपयोगकर्ता से सेटिंग्स कॉन्फ़िगर कर सकते हैं। इसे इच्छित सेटिंग्स के रूप में उपयोगकर्ता सेटिंग्स में रखने के लिए सबसे अच्छा है।
केविन जलबर्ट

20
@ केविन जैलबर्ट (और डीजीएम) वास्तव में उसे सिंटैक्स की विशिष्ट सेटिंग्स में रखना चाहिए, इसलिए यह केवल रूबी फाइलों को प्रभावित करता है।
पॉल हॉफ़र

6
सूचना मूल्य है सच और नहीं "सही"।
अर्थमीलोन

1
यह विशेष रूप से उपयोगी है क्योंकि Sublime Text की अपनी वेबसाइट के दस्तावेज़ गलत तरीके से सेटिंग कुंजियों में अंडरस्कोर के बजाय कैमलकेस का उपयोग करने का सुझाव देते हैं। ( sublimetext.com/docs/indentation )
एरिक गोल्डबर्ग

@EricGoldberg - मुझे यकीन नहीं है कि आप उस दस्तावेज़ पृष्ठ पर कैसे पहुंचे, लेकिन यदि आप sublimetext.com > सहायता पर जाते हैं, और दस्तावेज़ीकरण के तहत, उदात्त पाठ 2 लिंक पर क्लिक करते हैं, तो आपको sublimetext.com/docs/2 पर लाया जाता है - वहां से, आप डॉक्स को इंडेंटेशन पर पा सकते हैं, और सेटिंग कीज़ सही तरीके से अंडरस्कोर का उपयोग कर सकते हैं: sublimetext.com/docs/2/indentation.html
jbyrd

166

यदि आप अपनी चुनी हुई टैब सेटिंग को बाध्य करना चाहते हैं, तो इस बात की अनदेखी करते हुए कि पहले से ही फ़ाइल में क्या चल रहा है, तो आपको detect_indentationअपने कॉन्फ़िगरेशन (आपकी उपयोगकर्ता सेटिंग्स या आपके सिंटैक्स विशिष्ट सेटिंग्स में शामिल होना चाहिए , यह इस बात पर निर्भर करता है कि आप इसे वैश्विक या प्रति-फ़िलिपेट चाहते हैं):

{
    "tab_size": 2,
    "translate_tabs_to_spaces": true,
    "detect_indentation": false
}

पारितोषिक के लिए धन्यवाद! detect_indentationबंद किए बिना मुझे बहुत ही अजीब व्यवहार मिल रहा था (यह इंडेंटेशन का गलत तरीके से पता लगा रहा था और मेरी सेटिंग में जो मैंने निर्दिष्ट किया था उसके बजाय इसका उपयोग कर रहा था)।
याकूब एवलिन

डिफ़ॉल्ट सेटिंग्स में ऐसा करना मेरे लिए काम करता है। सुनिश्चित करें कि आप यह देखना चाहते हैं कि सेटिंग पहले से मौजूद है या नहीं। यदि आप इसे जोड़ते हैं और इसे बाद में सत्य घोषित किया जाता है, तो यह सत्य के रूप में सेट रहेगा।
डेविड

3
ध्यान रखें कि डिफ़ॉल्ट सेटिंग्स में परिवर्तन को उदात्त पाठ अपडेट द्वारा अधिलेखित किया जाएगा, आदि उपयोगकर्ता सेटिंग्स में परिवर्तन को फिर से लिखा नहीं जाएगा।
जेम्स शेवेलियर

6
धन्यवाद!! अन्य सेटिंग्स को नजरअंदाज किया "detect_indentation":falseजाता है, तो महत्वपूर्ण है। आखिरकार!
zzzeek

यह एक अच्छी बात है, लेकिन आपका उदाहरण अनुचित रूप से
प्रेरित है

88

आप इसे सब्बल टेक्स्ट 2 के नीचे बार में टेक्स्ट लिंक के साथ भी कर सकते हैं (दाईं ओर) जो डिफ़ॉल्ट रूप से "टैब साइज़ 4" कहता है, उस पर क्लिक करें और 1 स्थान से टैब साइज़ सेट करने के विकल्प के साथ एक विंडो आती है। 8 स्थानों तक सभी तरह से और टैब को स्थान और स्थानों को टैब में बदलने के विकल्प शामिल हैं।

इस तरह दिखता है:

उदात्त पाठ 2 में टैब विकल्प


3
महान टिप, लेकिन क्या आप जानते हैं कि यह एक चिपचिपा सेटिंग बन जाता है? उदाहरण के लिए, शीर्ष मेनूबार से इंडेंटेशन को बदलना केवल वर्तमान खुली फ़ाइल पर लागू होता है, और अन्य नहीं, जो मेरी मूल समस्या थी।
मोहम्मद

5
यह काम नहीं करता है । यह एक अच्छा टिप है, लेकिन यह चिपचिपा नहीं है: फ़ाइल को बंद करना और फिर से खोलना (या किसी अन्य फ़ाइल को खोलना) चार स्थानों के लिए इंडेंटेशन को पुनः प्राप्त करता है।
मोहम्मद

1
हाँ, यह चिपचिपा नहीं है, यह प्रति फ़ाइल है। आपको टैब / रिक्त स्थान के लिए अपनी डिफ़ॉल्ट सेटिंग सेटअप करने के लिए उदात्त पाठ की सेटिंग में जाना होगा।
टास्किज़्म

इसने उदात्त पाठ 3 में मेरे मुद्दे को हल किया। धन्यवाद!
एड्रियन

29

क्या मैं EditorConfig का सुझाव दे सकता हूं ? ऑटोलैड में एक एक्सटेंशन है और .editorconfigफ़ाइल को लागू करना है। तो बस अपने प्रोजेक्ट की जड़ में एक बनाएँ।

.editorconfig

[*.rb]
indent_style = tab
indent_size = 2

यदि आप प्रत्येक प्रोजेक्ट या भाषा के लिए विभिन्न शैलियों का उपयोग करते हैं, तो इस तरह, आपकी सेटिंग प्रोजेक्ट-विशिष्ट और फ़ाइल-विशिष्ट हैं।


यहाँ मेरा अपना .editorconfigजैसा दिखता है।

# editorconfig.org
root = true

[*]
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

2
मैं इसे वैश्विक परिवर्तन नहीं बनाना चाहता था। तो यह एकमात्र समाधान था जिसने काम किया। मैंने EditorConfig में कुछ शोध किया और यह IDEs के लिए बहुत अच्छा लगता है जो इसका समर्थन करते हैं।
नील मुनरो

1
यह सिर्फ इतना हुआ कि मैं पहले से ही अपने प्रोजेक्ट में एक .editorconfig था और यह भी नहीं जानता था। (कोणीय-
क्ली

9

मैं स्टूपिड इंडेंट पैकेज का उपयोग करता हूं ।

Install Package -> Stupid Indent

Preferences-> Package Settings-> Stupid Indent->Setting-Users

कॉपी सेटिंग्स ( Rubyभाग का) में।

{
    "configuration":
    [
        {
            "patterns": ["*.rb"],
            "tab_size": 2,
            "translate_tabs_to_spaces": true
        }
    ]
}

हाँ, यह वही है जो मुझे चाहिए: D
Dragutescu Alexandru

बहुत बढ़िया। बहुत बहुत धन्यवाद :)
कृतिकागोपालकृष्णन

चेतावनी । स्टूपिड इंडेंट डिफॉल्ट और कस्टम सेटिंग्स सब्बल टेक्स्ट और एडिटोरिकफिग सेटिंग्स को ओवरराइट कर देती हैं। धन्यवाद।
Саша нерных

1

मैंने पिछले उत्तरों का पालन किया, जिसमें डिटे_इंडेंटेशन लाइन को जोड़ना भी शामिल था, और मेरे टैब अभी भी पांच स्थान थे। तब मुझे एहसास हुआ कि Preferences -> Settings -> More -> Syntax Specific -> Userएक रूबी फ़ाइल से चयन Ruby on Rails.sublime-settingsमेरे लिए खुल रहा था , नहींRuby.sublime-settings

मैंने अपनी Ruby on Rails.sublime-settingsफ़ाइल का नाम बदल दिया Ruby.sublime-settings। अंत में दो-स्पेस टैब ने काम किया! मैं आगे बढ़ा और Ruby on Rails.sublime-settingsसाथ ही सुनिश्चित करने के लिए उसी सेटिंग को भी रखा ।

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