Sublime Text में स्पेस इंडेंटेशन को कैसे ठीक करें / कन्वर्ट करें?


228

उदाहरण: यदि मेरे पास 2 स्थान इंडेंटेशन के साथ एक दस्तावेज है, और मैं चाहता हूं कि इसमें 4 स्थान इंडेंटेशन हो, तो मैं कैसे उपशीर्ष पाठ संपादक का उपयोग करके इसे स्वचालित रूप से परिवर्तित कर सकता हूं?

जवाबों:


525

एक दस्तावेज़ में अपने इंडेंटेशन रिक्ति को परिवर्तित करने के लिए उदात्त पाठ 2 या 3 में एक साफ चाल है।

टी एल; डॉ:

2 स्थानों से 4 स्थानों में परिवर्तित:

सुनिश्चित करें कि टैब की चौड़ाई 2 पर सेट है। टैब के लिए अपने 2-स्थान इंडेंटेशन को कनवर्ट करें, टैब चौड़ाई 4 पर स्विच करें, और फिर इंडेंटेशन को वापस रिक्त स्थान में बदलें।

विस्तृत विवरण:

के लिए जाओ:

View -> Indentation

इसे पढ़ना चाहिए:

  • Indent using spaces [x]
  • Tab width: 2

चुनते हैं:

  • Convert Indentation to Tabs

फिर चुनें:

  • Tab width: 4
  • Convert Indentation to Spaces

किया हुआ।


5
धन्यवाद! : D बहुत समय बच गया। ध्यान दें। आप यह भी कर सकते हैं: "लगता है अंतरिक्ष अंतरिक्ष => सभी => टैब का चयन करें"
Automatico

11
मैंने उदात्त के लिए एक मैक्रो बनाया, जो यह सब आपके लिए करता है । gith.github.com/joshmfrankel/5707020 । आनंद लें :-)
जोश फ्रैंकेल

2
मैं इंगित करना चाहता हूं कि "कन्वर्ट इंडेंटेशन टू स्पेसेस" भी काम करता है यदि आपके पास एक टेक्स्ट फ़ाइल है जहां टैब पूरी टैब-चौड़ाई नहीं ले रहे हैं। कहते हैं, एक ऐसी फ़ाइल के लिए जहाँ लेखक ने कॉलमों को प्रारूपित करने के लिए टैब का उपयोग किया है, इसलिए यदि आपको टैब पर एक खोज और प्रतिस्थापित करना है, तो परिणामी कॉलम अब पंक्तिबद्ध नहीं होंगे। "कन्वर्ट इंडेंटेशन टू स्पेसेस" का उपयोग करके इसे सही ढंग से पंक्तिबद्ध किया जाएगा
जो पिंसौल्ट

मैंने जोश के मैक्रो को देखने से पहले एक सहकर्मी के लिए इसके लिए मैक्रोज़ और उदाहरण कीबाइंडिंग भी बनाई। मेरा उपयोग ctrl + 2 और ctrl + 4 को आगे और पीछे स्विच करने की अनुमति देने के लिए: gist.github.com/beaugunderson/8588871
Beau

74

मैंने वास्तव में पाया कि मेरी पवित्रता के लिए बेहतर है कि उपयोगकर्ता प्राथमिकताएं इस तरह परिभाषित की जाएं:

"translate_tabs_to_spaces": true,
"tab_size": 2,
"indent_to_bracket": true,
"detect_indentation": false

यह detect_indentation: falseविशेष रूप से महत्वपूर्ण है, क्योंकि यह सबलाइम को सेटिंग्स के विपरीत हर फाइल में इन सेटिंग्स को सम्मानित करने के लिए मजबूर करता है View -> Indentation

यदि आप कल्पना करना चाहते हैं, तो आप निम्नलिखित को चिपकाकर अपने कोड (YMMV) को स्वचालित रूप से पुन: इंडेंट करने के लिए एक कीबोर्ड शॉर्टकट भी परिभाषित कर सकते हैं Sublime -> Preferences -> Key Binding - User:

[
  { "keys": ["ctrl+i"], "command": "reindent" }
]

और व्हॉट्सएप की कल्पना करने के लिए:

"indent_guide_options": ["draw_active"],
"trim_trailing_white_space_on_save": true,
"ensure_newline_at_eof_on_save": true,
"draw_white_space": "all",
"rulers": [120],

9

मैंने पाया, मेरे दिमाग में, मैग्ने की तुलना में एक सरल समाधान:

मैक पर:

"cmd+f" => "  "(two spaces) => "alt+enter" => "arrow right" => "  "(two more spaces) => set tab width to 4(this can be done before or after.

खिड़कियों पर या अन्य प्लेटफार्मों में परिवर्तन होता है cmd+fऔर alt+enterजो कुछ भी आपके findऔर select allहॉटकी के साथ होता है ।

नोट: यदि आपके कोड में एक से अधिक स्थान हैं, तो यह विधि "त्रुटियों" से ग्रस्त है। यह मैगने की विधि की तुलना में कम सुरक्षित है, लेकिन यह तेज है (कम से कम मेरे लिए)।


मैं इस तरह से काम करने के लिए नहीं मिल सकता था, लेकिन मैंने सिद्धांत का इस्तेमाल किया और बस एक खोज और प्रतिस्थापित किया (मैक पर cmd-option-F) और "" (2 रिक्त स्थान) के साथ "" (4 रिक्त स्थान) को प्रतिस्थापित किया। और यह काम किया!
evanbikes

मुझे अब ऐसा करने का एक और तरीका मिल गया है, लेकिन यह भाषा विशिष्ट है। यदि आपके पास एक स्वरूपण-प्लगइन है, RubyFormatतो आप बस वांछित टैब आकार सेट कर सकते हैं और फिर कोड का एक पुन: स्वरूपण कर सकते हैं। के मामले में RubyFormatयह होगा cmd+shift+R
Automatico

7

जबकि 2 -> 4 स्थान को परिवर्तित करते समय सुझावों में से कई काम करते हैं। 4 -> 2 को परिवर्तित करते समय मैं कुछ मुद्दों में भाग गया।

यहाँ मैंने क्या उपयोग किया है:

Sublime Text 3/Packages/User/to-2.sublime-macro

[
  { "args": null, "command": "select_all" },
  { "args": { "set_translate_tabs": true }, "command": "unexpand_tabs" },
  { "args": { "setting": "tab_size", "value": 1 }, "command": "set_setting" },
  { "args": { "set_translate_tabs": true }, "command": "expand_tabs" },
  { "args": { "setting": "tab_size", "value": 2 }, "command": "set_setting" }
]

5

यदि आप खोज करते हैं और उपयोग करने के लिए तेज़ी से प्रतिस्थापित करते हैं, तो आप इस तरह से रीगेक्स का उपयोग कर सकते हैं:

खोजें (regex): (^|\G) {2}( "{2}" के बजाय <space>{2}आप केवल दो रिक्त स्थान लिख सकते हैं। इसका उपयोग यहां स्पष्टता के लिए करें।)

4 स्थानों के साथ बदलें, या आप जो चाहें, जैसे \t


5

मैंने इसके लिए एक प्लगइन लिखा था। आप इसे यहां पा सकते हैं या पैकेज नियंत्रण में "रीइंडेंट" की तलाश कर सकते हैं । यह ज्यादातर वही काम करता है जैसा कि काइल फिनाले ने लिखा था, लेकिन 2 और 4 के बीच रूपांतरण के लिए शॉर्टकट के साथ एक सुविधाजनक तरीके से और इसके विपरीत।


2

आपको इस कोड को अपने कस्टम कुंजी बाइंडिंग में जोड़ना होगा:

{ "keys": ["ctrl+f12"], "command": "set_setting", "args": {"setting": "tab_size", "value": 4} }

ctrl + f12 दबाकर, यह आपकी फ़ाइल को 4 के टैब आकार में फिर से स्थापित करेगा। यदि आप एक अलग टैब आकार चाहते हैं, तो आप बस "मान" संख्या को बदल सकते हैं। ते स्वरूप एक सरल जसन है।


मुझे यह पसंद है धन्यवाद! मैंने 2 और 4 को इस तरह से जोड़ा:{ "keys": ["ctrl+f10"], "command": "set_setting", "args": {"setting": "translate_tabs_to_spaces", "value": 2} }, { "keys": ["ctrl+f11"], "command": "set_setting", "args": {"setting": "tab_size", "value": 2} }, { "keys": ["ctrl+f12"], "command": "set_setting", "args": {"setting": "tab_size", "value": 4} },
JREAM

0

सबसे आसान काम मैंने किया,

मेरे इंडेंटेशन को टैब्स में बदल दिया

और इसने मेरी समस्या हल कर दी।

आपसे ही वह संभव है,

रिक्त स्थान के लिए

अपनी आवश्यकता के अनुसार।

उसी के स्नैपशॉट का उल्लेख किया।

यहां छवि विवरण दर्ज करें


हां, लेकिन सवाल उस स्थिति के लिए पूछते हैं जब आप रिक्त स्थान के रूप में इंडेंटेशन के साथ शुरू और समाप्त होते हैं।
मैग्ने

0

हाल ही में मुझे इसी तरह की समस्या का सामना करना पड़ा। मैं उदात्त संपादक का उपयोग कर रहा था। यह कोड के साथ नहीं बल्कि संपादक के साथ एक मुद्दा है।

वरीयता सेटिंग्स में बदलाव के नीचे मेरे लिए काम किया।

उदात्त पाठ मेनू -> प्राथमिकताएँ -> सेटिंग्स: सिंटैक्स-विशिष्ट :

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