विजुअल स्टूडियो कोड: प्रारूप इंडेंट सेटिंग्स का उपयोग नहीं कर रहा है


143

Format Codeविजुअल स्टूडियो कोड में कमांड का उपयोग करते समय , यह मेरी इंडेंट सेटिंग्स ( "editor.tabSize": 2) का सम्मान नहीं कर रहा है । यह 4 के बजाय टैब आकार का उपयोग कर रहा है। कोई अंदाजा ऐसा क्यों हो रहा है?

धन्यवाद!


कौनसी भाषा? विज़ुअल स्टूडियो कोड प्रतिनिधि को भाषा फ़ॉर्मेट करने के लिए फ़ॉर्मेट करता है। कुछ फॉर्मेटर इंडेंट सेटिंग का निरीक्षण करते हैं। उदाहरण के लिए, C #, जिसे ओमनीशर्प द्वारा नियंत्रित किया जाता है, और इसे omnisharp.json
Ian Yang

मुझे यह पता लगाने में लंबा समय लगा: मेरे पास मिश्रित टैब और स्पेस-इंडेंट के साथ एक .cs फ़ाइल थी और सभी टैब के साथ इसे प्रारूपित करना चाहते थे (अधिकांश लाइनों में टैब थे / सी)। मैंने "प्रारूप दस्तावेज़" और "प्रारूप चयन" के साथ विभिन्न सेटिंग्स मानों की कोशिश की, लेकिन कोई भाग्य नहीं था। अंत में मुझे "कन्वर्ट इंडेंटेशन टू टैब्स" एक्शन मिला (छवि को @ मालेकी के जवाब में देखें) और उसने वही किया जो मैं करना चाहता था। (मैंने हाल ही में ctrl-shift-p को भी खोजा! ... हाँ, मैं VS कोड के लिए नया हूं)
केविनविक्टर

जवाबों:


228

स्वरूपण के लिए उपयोग करने के लिए रिक्त स्थान की संख्या एक अलग स्थान से ली गई है। मैं 1.0 संस्करण का उपयोग कर रहा हूं और इसे ठीक करने के लिए मैंने यही किया है (मैं टैब के बजाय आपके रिक्त स्थान का उपयोग कर रहा हूं):

दाहिने हाथ पर संपादक के निचले भाग में "रिक्त स्थान: #" पर क्लिक करें:

दाईं ओर स्थिति पट्टी

फिर एक मेनू ऊपर दिखाई देगा। "रिक्त स्थान का उपयोग करके इंडेंट" चुनें:

इंडेंटेशन प्रकार का चयन करें

अंत में आप यह चुन सकते हैं कि आप कितनी जगह चाहते हैं कि आपकी फाइलें इंडेंट हों।

टैब का आकार चुनें

अगली बार जब आप किसी फ़ाइल को प्रारूपित करते हैं तो आपको आपके द्वारा कॉन्फ़िगर की गई रिक्ति प्राप्त करने में सक्षम होना चाहिए।


28
ऑटो प्रारूप (राइट-क्लिक -> प्रारूप कोड) को लागू करते समय इस सेटिंग का उपयोग नहीं किया जाता है। यह हमेशा 4 रिक्त स्थान का उपयोग करता है।
kiml42

आपको दोनों की आवश्यकता है - अपनी व्यक्तिगत सेटिंग्स को कार्यक्षेत्र या संपादक (या दोनों) के लिए कॉन्फ़िगर करें। नई फाइलें उस सेटिंग को पिकअप करेंगी और उदाहरण के लिए, इन स्क्रीनशॉट के अनुसार स्टेटस बार में '2' दिखाएंगी। तब आप ऑटोफार्माट कर सकते हैं। मौजूदा फ़ाइलों के लिए, पहले अपने कार्यक्षेत्र / संपादक सेटिंग्स को 'टैब का उपयोग करने के लिए' या 'रिक्त स्थान का उपयोग करें' और रिक्त स्थान की संख्या निर्धारित करें, फिर आप मौजूदा फ़ाइलों को मौजूदा फ़ाइलों को स्वतः सहेजने के लिए कर सकते हैं।
rmcsharry

5
उपयोगकर्ता और कार्यक्षेत्र सेटिंग्स दोनों को सेट करें, इसे नीचे की पट्टी में सेट करें, फिर से खोल दी गई फ़ाइल - अभी भी ऑटोफ़ॉर्मैट 4 स्थानों का उपयोग कर रहा है ...
Jared

3
उपयोगकर्ता और कार्यक्षेत्र दोनों को निर्धारित करने के लिए सेटिंग्स से बाहर निकलने के बाद vscode से बाहर निकलना और पुनः आरंभ करना पड़ा। तभी यह मेरे जेएस फाइलों पर 4 रिक्त स्थान का उपयोग करने की कोशिश करना बंद कर दिया।
जॉन पेटिट

11
@ मुझे लगता है कि आप JS-CSS-HTMLप्लगइन का उपयोग कर रहे हैं । उस स्थिति में फॉर्मेटर को दबाएं F1और वहां अपना इंडेंटेशन सेट करें। यह ऊपर चर्चा किए गए सभी विकल्पों को ओवरराइड करने लगता है।
आतिफ मोहम्मद अमीनुद्दीन

111

विजुअल स्टूडियो कोड डिफ़ॉल्ट रूप से वर्तमान इंडेंटेशन का पता लगाता है और इसका उपयोग करता है - .editorconfig की अनदेखी

"Editor.detectIndentation" को भी गलत पर सेट करें

(फाइलें -> वरीयताएँ -> सेटिंग्स)

स्क्रीनशॉट


यदि ऐसा होता है, तो संभवतः आपके पास फ़ाइल के भीतर असंगत इंडेंटेशन है। मेरे पास दो स्थानों के साथ कुछ पंक्तियों को छोड़कर हर जगह टैब के साथ एक फ़ाइल थी (जो जानता है कि क्यों), जो कि टैब का उपयोग करने के रूप में पता लगाया जा रहा है, लेकिन टैब का आकार 2. के साथ है
isanae

49

यदि @ मालेकी का उत्तर आपके लिए काम नहीं कर रहा है, तो देखें कि क्या .editorconfigआपके प्रोजेक्ट फ़ोल्डर में कोई फ़ाइल है या नहीं।

उदाहरण के लिए कोणीय सीएलआई एक नई परियोजना के साथ एक उत्पन्न करता है जो इस तरह दिखता है

# Editor configuration, see http://editorconfig.org
root = true

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

[*.md]
max_line_length = off
trim_trailing_whitespace = false

indent_sizeयहां बदलना आवश्यक है क्योंकि ऐसा लगता है कि यह आपके .vscodeकार्यक्षेत्र या उपयोगकर्ता सेटिंग्स में कुछ भी ओवरराइड करेगा ।


5
IDE में परिवर्तन करने के लिए मुझे VSCode को फिर से शुरू करना पड़ा।
जुकपमैन

3
मेरे मामले में यह वास्तव .editorconfigमें मेरे होम फ़ोल्डर में फ़ाइल के कारण हुआ था । किसी तरह यह VSCode किसी भी कार्यक्षेत्र-विशिष्ट सेटिंग्स को अनदेखा करता है। बहुत कष्टप्रद।
xji

20

यदि आप एक प्लगइन का उपयोग कर रहे हैं (मेरे मामले में Vetur, vue.js के लिए), तो ये अपनी टैब स्वरूपण सेटिंग सेट कर सकते हैं।

अपनी सेटिंग्स खोलें, "प्रारूप" के लिए खोजें और प्रासंगिक प्लगइन सेटिंग्स के माध्यम से देखें जो वैश्विक टैब प्रारूप को ओवरराइट कर सकते हैं। इसने मेरे लिए काम किया; एक बार जब मैंने अपनी प्राथमिकता (मेरे मामले में 4-आकार के टैब) से मिलान करने के लिए वेटूर टैब सेटिंग्स को अपडेट किया, तो स्वरूपण।। दस्तावेज़ ठीक से काम करना शुरू कर दिया:

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


यह सच है, मेरे मामले में मुझे Prettier एक्सटेंशन की सेटिंग्स में टैब का आकार भी सेट करने की आवश्यकता थी।
टोनिक्स

ध्यान देने योग्य बात यह है कि SCSS Formatterप्लगइन उदाहरण के लिए अपनी सेटिंग्स का उपयोग करता है, इसलिए आपको Settings > Extensions > SCSS Formatter > Use Tabsउदाहरण के लिए टैब का उपयोग करने के लिए इसे मजबूर करने के लिए जाना चाहिए ।
स्मार्टीपी

13

खुद के लिए, इस समस्या का उपयोग करने के कारण हुआ था prettier कार्यक्षेत्र में एक पूर्व-कॉन्फ़िगर कॉन्फ़िगरेशन फ़ाइल के बिना VSCode प्लगइन ।

प्लगइन को अक्षम करने से समस्या ठीक हो गई। यह शायद प्राइटरियर कॉन्फिगर पर निर्भर होकर भी तय किया जा सकता था।


1
मेरे लिए यह "सुशोभित" प्लगइन था।
मैथ्यू स्मिथ

मुझे "क्लैंग-प्रारूप" और ".clang- प्रारूप" कॉन्फ़िगरेशन फ़ाइल के साथ एक ही समस्या थी।
repkap11

6

सबसे अधिक संभावना है कि आपके पास कुछ फ़ॉर्मेटिंग एक्सटेंशन स्थापित हैं, जैसे जेएस-सीएसएस-HTML फॉर्मैटर

यदि यह मामला है, तो बस कमांड पैलेट खोलें, "फ़ॉर्मेटर" टाइप करें और चुनें Formatter Config। फिर का मान संपादित करें"indent_size" जैसा चाहें वैसा ।

पुनश्च संपादन के बाद विज़ुअल स्टूडियो कोड को फिर से शुरू करने के लिए मत भूलना :)


6

नीचे दी गई सेटिंग्स ने मेरी समस्या हल कर दी

  "editor.detectIndentation": false,
  "editor.insertSpaces": false,
  "editor.tabSize": 2,

यह काम करता है अगर यू केवल 2 रिक्त स्थान टैब वाली फ़ाइलों के साथ काम करता है!
डोमिनक्स

2

अगर आप google से यहाँ आये हैं क्योंकि tab isent indenting, यह भी हो सकता है क्योंकि "Tab Moves Focus" चालू है। यह नीचे दाईं ओर है, और यदि आपके पास एक बड़ा पर्याप्त मॉनिटर है, तो आप इसे हाइलाइट किए जाने के बावजूद याद कर सकते हैं।

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

इसे रोकने के लिए ग्रीन क्षेत्र या Ctrl + M पर क्लिक करें। मुझे यकीन नहीं है कि इसे पूरी तरह से अक्षम किया जा सकता है, फिर मुझे पता नहीं है कि एक कोड संपादक इंडेंटिंग जैसी किसी चीज के साथ गड़बड़ क्यों करना चाहेगा।


2

मुझे भी इसी तरह की समस्या थी - कोई फर्क नहीं पड़ता कि मैंने जो किया, वह 2 पर टिकने के लिए टैब्साइज़ नहीं कर सका, भले ही यह मेरी उपयोगकर्ता सेटिंग्स में है - जो कि EditorConfig एक्सटेंशन के कारण समाप्त हो रहा है । यह .editorconfigआपकी वर्तमान कार्यशील निर्देशिका में एक फ़ाइल की तलाश करता है और, यदि यह एक नहीं मिल रहा है (या जो इसे पाता है वह निर्दिष्ट नहीं करता है root=true), यह तब तक मूल निर्देशिका को देखता रहेगा जब तक कि यह एक न मिल जाए।

पता .editorconfigचलता है कि मैं एक अभिभावक की निर्देशिका में था, मैंने अपनी सभी नई कोड परियोजनाएं लगाईं, और इसमें 4 की टैब निर्दिष्ट की। उस फ़ाइल को हटाने से मेरा मुद्दा ठीक हो गया।


1

मुझे कभी-कभी यही समस्या होती है। VSCode बस अचानक इसे खो देगा मन और पूरी तरह से किसी भी इंडेंटेशन सेटिंग को अनदेखा करें जो मैं इसे बताता हूं, भले ही यह पूरे दिन बस एक ही फाइल को इंडेंट कर रहा हो।

मैंने editor.tabSize2 पर सेट किया है (साथ ही साथeditor.formatOnSave सच पर सेट)। जब VSCode एक फ़ाइल को गड़बड़ करता है, तो मैं इंडेंटेशन प्रकार और आकार को बदलने के लिए संपादक के निचले भाग में विकल्पों का उपयोग करता हूं, उम्मीद है कि कुछ काम करेगा, लेकिन VSCode वास्तव में 4 के इंडेंट आकार का उपयोग करने पर जोर देता है।

जोड़? VSCode को पुनरारंभ करें। इसे इंडेंट स्टेटस के साथ कुछ गलत दिखाते हुए वापस आना चाहिए (मेरे मामले में, 4)। मेरे लिए, मुझे सेटिंग में बदलाव करना था और फिर इसे बचाने के लिए वास्तव में बदलाव करना था, लेकिन शायद यह मेरी editor.formatOnSaveसेटिंग के कारण है।

मुझे पता नहीं चला कि ऐसा क्यों होता है, लेकिन मेरे लिए यह आमतौर पर तब होता है जब मैं एक जेएस फ़ाइल में एक नेस्टेड ऑब्जेक्ट को संपादित कर रहा हूं। यह अचानक ऑब्जेक्ट के भीतर बहुत ही अजीब इंडेंटेशन करेगा, भले ही मैं थोड़ी देर के लिए उस फाइल में काम कर रहा हूं और यह ठीक ठीक इंडेंट कर रहा है।


0

VSCode प्लगइन Vetur; VueJS अनुप्रयोगों के लिए उपयोग मेरे लिए सेटिंग को ओवरराइड कर रहा था।

मेरे पसंदीदा स्थानों में से vetur.format.options.tabSize की स्थापना ने इसे काम कर दिया।


0

मुझे लगता है कि vscode .pyडिफ़ॉल्ट रूप से स्वरूपण के लिए autopep8 का उपयोग कर रहा है ।

"PEP 8 - पायथन कोड के लिए स्टाइल गाइड | Python.org"

इस वेबसाइट के अनुसार, निम्नलिखित बता सकता है कि क्यों vscode हमेशा 4 रिक्त स्थान का उपयोग करता है।

इंडेंटेशन स्तर प्रति 4 रिक्त स्थान का उपयोग करें।


-1

सभी प्लग इन को अक्षम करें (फिर एक-एक करके सक्षम करें और सत्यापित करें)

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