मैं विंडोज के लिए विजुअल स्टूडियो कोड में कोड के वर्गों को कैसे ढहा सकता हूं?


770

मैं विज़ुअल स्टूडियो कोड में कोड के अनुभागों को कैसे मोड़ या ध्वस्त कर सकता हूं?

क्या यह सुविधा समर्थित है?

जवाबों:


1351

फोल्डिंग को रोल आउट कर दिया गया है और अब विजुअल स्टूडियो कोड संस्करण 0.10.11 से लागू किया गया है । ये कीबोर्ड शॉर्टकट उपलब्ध हैं:

  • कर्सर पर अंतरतम अनकैपल्ड क्षेत्र को मोड़ो :

    • Ctrlविंडोज और लिनक्स पर + Shift+[
    • MacOS पर + +[
  • अनफोल्ड कर्सर पर ढह क्षेत्र को उजागर करता है:

    • Ctrlविंडोज और लिनक्स पर + Shift+]
    • MacOS पर + +]
  • सभी क्षेत्रों को संपादक में मोड़ो :

    • Ctrlविंडोज और लिनक्स पर + ( K=> 0) (शून्य)
    • macOS पर + ( K=> 0) (शून्य)
  • अनफोल्ड सभी संपादक में सभी क्षेत्रों को प्रकट करता है:

    • Ctrlविंडोज और लिनक्स पर + ( K=> J)
    • macOS पर + ( K=> J)

संदर्भ: https://code.visualstudio.com/docs/getstarted/keybindings


2
@DouglasGaskell मैंने वही गलती की। यह एक शून्य नहीं एक ओ है, माइकल फुल्टन के Fold Levelउत्तर ने मुझे और अधिक समझदार बना दिया।
दान मार्शल

1
पता नहीं है कि क्या इसका एक कोड संस्करण जारी है, एक Windows संस्करण समस्या, या कुछ और, लेकिन मेरे पीसी पर यह केवल राइट-Ctrl के साथ काम करता है। आप इस पर ध्यान देना चाह सकते हैं!
मंगल

6
इसका मूल रूप से Ctrl + K, Ctrl + [n] जहां n स्तर संख्या है जिसे आप मोड़ना चाहते हैं। इसलिए, यदि आप VSCode पर Ctrl + M, Ctrl + O बनाम VS (C #) के बराबर की तलाश कर रहे हैं, तो यह Ctrl + K, Ctrl + 3 होगा।
यश गौरव

3
@ Preza8 प्रेस F1और प्रकार गुना या प्रकट
Alexg

2
@ Preza8 यह आपको वर्तमान में मौजूद कीबाइंडिंग को भी दिखाता है, यदि कोई भी असाइन नहीं किया गया है, तो आप इसे स्वयं असाइन कर सकते हैं। इसके अलावा, कस्टम GUI बटन जोड़ने के लिए एक एक्सटेंशन हो सकता है
एलेक्स्ज डिक

222

विज़ुअल स्टूडियो कोड संस्करण 1.12.0, अप्रैल 2017 के अनुसार, डॉक्स में बेसिक एडिटिंग> फोल्डिंग सेक्शन देखें ।

डिफ़ॉल्ट कुंजी हैं:

सभी मोड़ो: CTRL+ K, CTRL+ 0(शून्य)

गुना स्तर [n]: CTRL+ K, CTRL+ [n]*

अनफोल्ड ऑल: CTRL+ K, CTRL+J

गुना क्षेत्र: CTRL+ K, CTRL+[

अनफोल्डेड रीजन: CTRL+ K, CTRL+]

* गुना स्तर: सभी लेकिन सबसे बाहरी वर्गों को मोड़ने के लिए, CTRL+ K, CTRL+ आज़माएं1

Macs: इसके बजाय का उपयोग करें CTRL(धन्यवाद प्रजीत)


क्या यह आईडीई स्टार्ट / शट डाउन के बीच सिलवटों की स्थिति को बचाता है और पुनर्स्थापित करता है?
ग्रीन

कुछ कारण ctrl+k,ctrl+numकेवल संख्या के ऊपर काम करता है
क्यूपर्टी

2
स्तर पर मोड़ो [n] उस खंड को मोड़ो नहीं जहाँ कर्सर स्थित है। यह हमेशा मुझे लगता है कि यह वह नहीं किया जो मैंने उम्मीद की थी। क्या इस व्यवहार को बंद करने का कोई विकल्प है?
Ronnllack

92

क्षेत्रों द्वारा कोड तह v1.17 के साथ आ गया है। क्षेत्रों प्रलेखन द्वारा तह । और v1.19 और 1.23

[आम तौर पर आप एक स्थान जोड़ सकते हैं, उदाहरण के // region and // endregionलिए //region and //endregionऔर यह भी काम करेगा।]

TypeScript/JavaScript: //#region and //#endregion or // #region and // #endregion
C#:                    #region and #endregion
C/C++:                 #pragma region and #pragma endregion
F#:                    //#region and //#endregion
PowerShell:            #region and #endregion
Python:                #region and #endregion
VB:                    #Region and #End Region
PHP:                   #region and #endregion
Bat:                   ::#region and ::#endregion or REM #region and REM #endregion
Markdown:              <!-- #region --> and <!-- #endregion -->
Golang                 //region and //endregion or //#region and //#endregion

प्रत्येक भाषा में मार्करों के लिए स्निपेट्स भी उपलब्ध हैं। उन्हें देखने के लिए '#' टाइप करें और कोड पूरा करें। आपकी भाषा के लिए क्षेत्र मार्कर कॉन्फ़िगर किए गए हैं, भाषा एक्सटेंशन प्रदाता से संपर्क करें।

v1.23 ने CSS / SCSS / कम कोड तह क्षेत्रों को जोड़ा:

CSS/SCSS/Less:         /* #region */ and /* #endregion */ or /*#region*/ and /*#endregion*/
SCSS/Less:             // #region and // #endregion

v1.35 जोड़ा गया:

Go:                   // region, // endregion and // #region, // #endregion

v.1.36 ने शेलस्क्रिप्ट को जोड़ा, देखें [जीथब इश्यू: शेल्स्क्रिप्ट फोल्डिंग मार्कर को जोड़ना]। 4 :

shellscript:          # region and # endregion

v1.42 Perl5 को जोड़ने, आदि (देखें https://github.com/microsoft/vscode-docs/commit/ec3e9d07724510eaf0c3b7200b09c9c22d3c7c3 ):

Perl5 #region and #endregion or =pod and =cut


v1.39 कमांड के साथ तह टॉगल करने की क्षमता को जोड़ रहा हैeditor.toggleFold

यह डिफ़ॉल्ट रूप से Ctrl+ K Ctrl+ के लिए बाध्य है LHttps://github.com/microsoft/vscode-docs/blob/vnext/release-notes/v1_39.md#toggle-folding देखें ।


1
// regionऔर // endregionवी.एस. कोड संस्करण १.२२ के साथ काम नहीं कर रहे हैं (हालांकि नीचे या ऊपर के संस्करणों का परीक्षण नहीं किया है)। लेकिन // #regionऔर // #endregionकाम करता है (दोनों में '#' और स्थान पर ध्यान दें)। इस तरह ESLint (यदि आप उपयोग कर रहे हैं) त्रुटि नहीं दिखाएगा यदि spaced-commentनियम चालू है (यानी 'बंद' या 0 पर सेट नहीं है)।
ओजन्मुयेस

CSS में, यह वास्तव में है /* #region Foo Bar */और/* #endregion */
toddmo

1
@ozanmuyes यह फ़ाइल प्रकार (भाषा) पर निर्भर करता है। //regionऔर //endregionजावास्क्रिप्ट के लिए हैं।
lealceldeiro

डॉकर में .yaml फ़ाइलों के साथ अच्छी तरह से काम करता है, यदि आप Microsoft के डॉक को स्थापित करते हैं ext: marketplace.visualstudio.com/
रॉबर्ट

v1.41: मैंने XML की कोशिश की और यह काम कर गया! <!-- #region --> elements <!-- #endregion -->। यह खंड पर # भाग के बाद पाठ प्रदर्शित करता है। यह ठीक से चालू #region से संबंधित #endregion तक, भले ही किसी और समीकरण में कोष्ठक की तरह - अन्य नेस्टेड हो, से संबंधित है। यह नेस्टेड क्षेत्रों के लिए गुना सेटिंग को याद करता है। Ctrl + k + Ctrl + [और Ctrl + k + Ctrl +] कर्सर पर सही ढंग से सिलवटों को बंद / खोलें। (जो मुझे थोड़ा पीछे की तरफ लगता है, लेकिन व्हाटवाह) बहुत बढ़िया!
टोनीजी

73

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

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


31

आपको उपयोगकर्ता सेटिंग्स जोड़ना चाहिए:

{
    "editor.showFoldingControls": "always",
    "editor.folding": true,
    "editor.foldingStrategy": "indentation", 
}

"editor.foldingStrategy" अब तक मेरे लिए सबसे उपयोगी टिप था। मैं लिक्विड कोड (Shopify) का संपादन कर रहा हूं और अपने कोड को मोड़ने में सक्षम नहीं था। एक बार जब मैंने 'ऑटो' से 'इंडेंटेशन' पर स्विच किया, तो वीएस कोड ने इंडेंटेशन को देखा कि मैं जिस विशिष्ट भाषा का उपयोग कर रहा था, वह बहुत उपयोगी नहीं थी, धन्यवाद
बेंजामिन

24

पतन / विस्तार के लिए डिफ़ॉल्ट शॉर्टकट हैं:

Ctrl+ Shift+ [: "गुना"

Ctrl+ Shift+ Alt+ [: "सभी को मोड़ो"

Ctrl+ Shift+ ]: "अनफोल्ड"

Ctrl+ Shift+ Alt+ ]: "सभी अनकहा"

या keybindings.json पर जाएं और अपनी इच्छानुसार बदलें।

उदाहरण के लिए:

{
    "key": "cmd+k cmd+m",
    "command": "editor.foldAll",
    "when": "editorFocus"
},
{
    "key": "cmd+m cmd+k",
    "command": "editor.unfoldAll",
    "when": "editorFocus"
},

क्या यह कुछ भाषाओं तक सीमित है? OSX / टाइपस्क्रिप्ट पर मेरे लिए काम नहीं करता है।
dcsan 15

1
कृपया इसकी समीक्षा करें: ctrl+shift+alt+[ "Unfold all"आपने [इसके बजाय लिखा था ]। अगर मैं ग़लत हूं तो मेरी गलती सुझाएं।
fWd82

@dcsan यह मेरे लिए अजगर / linux में भी काम नहीं करता है। Ctrl + K, Ctrl + 0 (शून्य) और Ctrl + K, Ctrl + J हालांकि स्वीकृत उत्तर के अनुसार काम करते हैं
स्पष्ट

यह काम नहीं करता है
KansaiRobot

19

यदि कोई भी शॉर्टकट काम नहीं कर रहा है (जैसे मेरे लिए), तो वर्कअराउंड के रूप में आप कमांड पैलेट ( Ctrl+ 3या दृश्य -> ​​कमांड पैलेट ...) भी खोल सकते हैं और इसमें टाइप करें fold all:

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


मुझे लगता है कि मुझे पता है कि क्या होता है ... यह केवल तभी ब्लॉक करता है यदि [+] उपलब्ध है, उदाहरण के लिए अजगर में यह निम्न गुना नहीं है: github.com/heldersepu/GMapCatcher/blob-master/gmapcatcher/ ...
हेल्डर सेपुलवेडा

@ हेलडरसुपुलेव्डा खैर, यह माना जाता है कि यह ब्लॉक की गई टिप्पणियों पर मुहर लगाता है, लेकिन अजगर के पास नहीं है। आपके द्वारा जोड़ा गया कोड कई एकल पंक्ति टिप्पणियों का उपयोग करता है।
जोर्न वर्नी 15

16

ctrl+ k+ 0: सभी स्तरों (नाम स्थान, वर्ग, विधि, ब्लॉक) को मोड़ो

ctrl+ k+ 1: नेमस्पेस

ctrl+ k+ 2: कक्षा

ctrl+ k+ 3: विधियाँ

ctrl+ k+ 4: ब्लॉक

ctrl+ k+ [या ]: वर्तमान कर्सर ब्लॉक

ctrl+ k+ j: अनफोल्ड


12

Collapsing अब 1.0 रिलीज में समर्थित है :

स्रोत कोड तह शॉर्टकट

स्रोत कोड क्षेत्रों को उनके तह स्तर के आधार पर ढहने के लिए नई तह क्रियाएँ हैं।

लेवल 1 ( Ctrl+ K Ctrl+ 1) से लेवल 5 ( Ctrl+ K Ctrl+ 5) तक गुना करने की क्रियाएं होती हैं । अनफोल्ड करने के लिए, अनफोल्ड ऑल ( Ctrl+ Shift+ Alt+ ]) का उपयोग करें।

स्तर तह कार्रवाई वर्तमान कर्सर वाले क्षेत्र पर लागू नहीं होती है।

मुझे ]अपने कीबोर्ड (नॉर्वेजियन लेआउट) पर बटन खोजने में समस्या थी , और मेरे मामले में यह Åबटन था । (या दो बटन बचे हैं और एक बैकस्पेस बटन से शुरू होता है।)



4

संस्करण 1.3.1 (2016-07-17) के अनुसार, ब्लॉक पतन अधिक सुविधाजनक है।

किसी भी लाइन के बाद एक इंडेंटेड लाइन में '-' वर्ण को गिराने की अनुमति होगी। यदि ब्लॉक ढह गया है, तो इसे फिर से '+' वर्ण से बदल दिया जाएगा जो ढह गए ब्लॉक को खोल देगा।

( Ctrl+ Shift+ Alt+ ]) अभी भी सभी ब्लॉकों को प्रभावित करेगा, एक स्तर को बंद करना। प्रत्येक दोहराया उपयोग ने एक और स्तर को बंद कर दिया। ( Ctrl+ Shift+ Alt+ [) विपरीत तरीके से काम करता है।

हुर्रे, ब्लॉक पतन अंत में उपयोगी रूप से काम करता है।


इसे जोड़कर - यदि आप कोड के एक क्षेत्र के आसपास टिप्पणी करते हैं, तो आप अपने कोड में कस्टम क्षेत्रों के निर्माण के लिए टिप्पणियों का उपयोग कर सकते हैं और अन्य कस्टम खंडों को ध्वस्त कर सकते हैं! महान सुविधा!
टिम सेडरक्विस्ट

यह जुलाई 13 2019 तक काम नहीं करता है। क्या कोई अन्य की-बोर्ड शॉर्टकट इसे प्रतिस्थापित कर रहा है? (एक समय में एक स्तर को ढहाने / विस्तार करने के लिए? {
मार्टिन

3

VsCode में XML- संरचित दस्तावेजों और स्रोत कोड के नोड्स का विस्तार करने के लिए संपादक के अंदर कोड तह नियंत्रण

यहां कोई तकनीकी सुझाव नहीं है, बस VsCode की प्राथमिकताओं का सरल समायोजन।

मैं हमेशा कोडिंग में कोड तह नियंत्रण को दिखाने में कामयाब रहा, जो वरीयताएँ जाकर 'तह' खोज रहा था। अब बस इन नियंत्रणों को हमेशा दिखाने का चयन करें। यह Angular 8 समाधान में टाइपस्क्रिप्ट कोड और टेम्पलेट्स के HTML के साथ काम करता है जिसे मैंने इसके साथ परीक्षण किया था।

यह विंडोज 10 ओएस पर चल रहे VsCode अंदरूनी सूत्रों 1.37.0 के साथ परीक्षण किया गया था।

कोड नियंत्रण को हमेशा VsCode में दिखाएं


3

v1.42 सिलवटों को देखने और कार्य करने के लिए कुछ अच्छे परिशोधन जोड़ रहा है। Https://github.com/microsoft/vscode-docs/blob/vnext/release-notes/v1_42.md#folded-range-highlighting देखें :

मुड़ा रेंज हाइलाइटिंग

मुड़ी हुई श्रेणियां अब सभी मुड़े हुए श्रेणियों के लिए पृष्ठभूमि रंग के लिए धन्यवाद खोजना आसान हैं।

हाइलाइट करें

हाइलाइट करें रंग थीम: डार्क +

इस सुविधा को सेटिंग एडिटर द्वारा नियंत्रित किया जाता है। FoldingHighlight और रंग को color editor.foldBackground के साथ अनुकूलित किया जा सकता है।

"workbench.colorCustomizations": { "editor.foldBackground": "#355000" }

तह शोधन

Shift + Clickफोल्डिंग इंडीकेटर पर सबसे पहले केवल आंतरिक श्रृंखलाएँ होती हैं। Shift + Clickफिर से (जब सभी आंतरिक श्रेणियां पहले से ही मुड़ी हुई हैं) भी माता-पिता को मोड़ देगा। Shift + Clickफिर से प्रकट करता है।

तह पारी क्लिक करें

editor.foldपहले से ही मुड़ी हुई सीमा पर फोल्ड कमांड (kb ( ))] का उपयोग करते समय , अगली अनकही पैरेंट रेंज को फोल्ड किया जाएगा।


2

एक मैक पर, यह आरएचएस कमांड कुंजी है, Kकोड फोल्डिंग कमांड के लिए नहीं छोड़ा गया है।

अन्यथा बाएं हाथ कमांड कुंजी, वर्तमान पंक्ति को नष्ट करेगा K


2

विजुअल स्टूडियो कोड 1.17 के बाद से यह सुविधा अब समर्थित है । अपना कोड ब्लॉक मोड़ने / ढहाने के लिए , केवल टाइपस्क्रिप्ट / जावास्क्रिप्ट में कोडिंग //#region my block nameऔर जैसे कि क्षेत्र टैग जोड़ें //#endregion

उदाहरण:

क्षेत्र तह



0

काश विजुअल स्टूडियो कोड संभाल सके:

#region Function Write-Log
Function Write-Log {
    ...
}
#endregion Function Write-Log

अभी विजुअल स्टूडियो कोड इसे अनदेखा करता है और इसे ध्वस्त नहीं करेगा। इस बीच नोटपैड ++ और पावरगीयू ने इसे ठीक बताया।

अपडेट: मैंने सिर्फ विजुअल स्टूडियो कोड के लिए एक अपडेट देखा। यह अब समर्थित है!


0

नोट: ये शॉर्टकट केवल तभी काम करते हैं जब आप अपने कीबाइंडिंग को संपादित करते हैं

मैं डिफ़ॉल्ट शॉर्टकट से खुश नहीं था, मैं चाहता था कि वे अनुसरण करें:

  • तह: Ctrl+ Alt+]
  • पुनरावर्ती रूप से मोड़ें: Ctrl+ ⇧ Shift+ Alt+]
  • सभी को मोड़ो: Ctrl+ kफिर Ctrl+]
  • अनफोल्ड: Ctrl+ Alt+[
  • पुन: प्रकट न करें: Ctrl+ ⇧ Shift+ Alt+[
  • सब अनकहा: Ctrl+ kफिर Ctrl+[

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

  • खोलें Preferences: Open Keyboard Shortcuts (JSON)( Ctrl+ ⇧ Shift+ p)
  • निम्नलिखित स्निपेट को उस फ़ाइल में जोड़ें

    पहले से ही फोल्ड / अनफोल्ड के लिए कस्टम कीबाइंडिंग हैं? फिर आपको उन्हें बदलना होगा।

    {
        "key": "ctrl+alt+]",
        "command": "editor.fold",
        "when": "editorTextFocus && foldingEnabled"
    },
    {
        "key": "ctrl+alt+[",
        "command": "editor.unfold",
        "when": "editorTextFocus && foldingEnabled"
    },
    {
        "key": "ctrl+shift+alt+]",
        "command": "editor.foldRecursively",
        "when": "editorTextFocus && foldingEnabled"
    },
    {
        "key": "ctrl+shift+alt+[",
        "command": "editor.unfoldRecursively",
        "when": "editorTextFocus && foldingEnabled"
    },
    {
        "key": "ctrl+k ctrl+[",
        "command": "editor.unfoldAll",
        "when": "editorTextFocus && foldingEnabled"
    },
    {
        "key": "ctrl+k ctrl+]",
        "command": "editor.foldAll",
        "when": "editorTextFocus && foldingEnabled"
    },
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.