2012-02-27 24 views
414

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

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

+0

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

उत्तर

749

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

इस कॉन्फ़िगरेशन को रूबी फ़ाइलों तक सीमित करने के लिए, पहले संपादक में रूबी फ़ाइल खोलें, और फिर Preferences -> Settings -> More -> Syntax Specific -> User पर जाएं। उस प्रकार के फ़ाइल को खोलने और उस के लिए सही वरीयताओं फ़ाइल खोलने के लिए वरीयताओं में वापस जाकर किसी अन्य वाक्य रचना प्रकार के लिए

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

दोहराएँ: यह Ruby.sublime-settings

सहेजें इन सेटिंग्स नामक एक सेटिंग्स विंडो खुल जाएगी वाक्य - विन्यास।

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

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

+11

बिल्ड 2181 से। आप प्राथमिकताओं -> सेटिंग्स - डिफ़ॉल्ट/उपयोगकर्ता से सेटिंग्स को कॉन्फ़िगर कर सकते हैं। इसे उपयोगकर्ता सेटिंग्स में रखना सर्वोत्तम है क्योंकि यह इच्छित दृष्टिकोण है। –

+19

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

+4

मान दें कि मान ** सत्य ** और * नहीं * "सत्य" है। – earthmeLon

156

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

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

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

+0

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

+2

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

72

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

इस तरह लग रहा है:

Tab Options in Sublime Text 2

+3

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

+5

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

+1

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

23

मैं EditorConfig का सुझाव कर सकते हैं? स्वत: लोड करने के लिए extension है और .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 में कुछ शोध किया और यह आईडीई के लिए बहुत अच्छा लग रहा है जो इसका समर्थन करता है। –

+1

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

0

मैंने पिछले उत्तरों का पता लगाया, जिसमें detect_indentation लाइन भी शामिल है, और मेरे टैब अभी भी पांच रिक्त स्थान थे। तब मुझे एहसास हुआ कि एक रूबी फ़ाइल से 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 में भी वही सेटिंग्स रखता हूं, बस यह सुनिश्चित करने के लिए।

3

मैं Stupid Indent पैकेज का उपयोग करता हूं।

Install Package ->Stupid Indent

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

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

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

yup यह वही है जो मुझे चाहिए: डी –

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

  • कोई संबंधित समस्या नहीं^_^