Wie reduziere ich Codeabschnitte in Visual Studio Code für Windows?


771

Wie falte oder reduziere ich Codeabschnitte in Visual Studio Code?

Wird diese Funktion unterstützt?

Antworten:


1351

Das Falten wurde eingeführt und ist jetzt seit Visual Studio Code Version 0.10.11 implementiert . Es stehen folgende Tastaturkürzel zur Verfügung:

  • Falten faltet den innersten nicht kollabierten Bereich am Cursor:

    • Ctrl+ Shift+ [Unter Windows und Linux
    • + + [Auf macOS
  • Entfalten entfaltet den reduzierten Bereich am Cursor:

    • Ctrl+ Shift+ ]Unter Windows und Linux
    • + + ]Auf macOS
  • Alle falten Faltet alle Regionen im Editor:

    • Ctrl+ ( K=> 0) (Null) unter Windows und Linux
    • + ( K=> 0) (Null) unter macOS
  • Alle entfalten Entfaltet alle Regionen im Editor:

    • Ctrl+ ( K=> J) unter Windows und Linux
    • + ( K=> J) unter macOS

Referenzen: https://code.visualstudio.com/docs/getstarted/keybindings


2
@DouglasGaskell Ich habe den gleichen Fehler gemacht. Es ist eine Null, keine Null, Michael Fultons Fold LevelAntwort ergab für mich mehr Sinn.
Dan Marshall

1
Ich weiß nicht, ob es sich um ein Code-Versionsproblem, ein Windows-Versionsproblem oder etwas anderes handelt, aber auf meinem PC funktioniert es nur mit Rechts-Strg. Vielleicht möchten Sie das beachten!
Mars

6
Es ist im Grunde Strg + K, Strg + [n], wobei n die Levelnummer ist, bis zu der Sie folden möchten. Wenn Sie also nach einem Äquivalent von Strg + M, Strg + O von VS (C #) in VSCode suchen, ist dies Strg + K, Strg + 3.
Yashash Gaurav

3
@ Preza8 Drücken Sie F1und geben Sie Fold or Unfold
AlexG

2
@ Preza8 Es zeigt Ihnen auch die aktuell zugewiesene Tastenkombination. Wenn keine zugewiesen ist, können Sie sie selbst zuweisen. Es könnte auch eine Erweiterung geben, um benutzerdefinierte GUI-Schaltflächen hinzuzufügen
AlexG

222

Ab Visual Studio Code Version 1.12.0, April 2017, siehe Abschnitt Grundlegende Bearbeitung> Falten in den Dokumenten.

Die Standardschlüssel sind:

Alle falten: CTRL+ K, CTRL+ 0(Null)

Faltstufe [n]: CTRL+ K, CTRL+ [n]*

Entfalte alle: CTRL+ K, CTRL+J

Faltbereich: CTRL+ K, CTRL+[

Region entfalten: CTRL+ K, CTRL+]

* Fold Level: Um alle außer den äußersten Klassen zu folden, versuchen Sie CTRL+ K, CTRL+1

Macs: verwenden statt CTRL(danke Prajeet)


Speichert und stellt es den Status der Falten zwischen dem Starten / Herunterfahren der IDE wieder her?
Grün

Ein Grund ctrl+k,ctrl+numfunktioniert nur bei Zahlen über QWERTY, nicht bei Numpad
MotKohn

2
Auf Ebene falten [n] faltet den Abschnitt, in dem sich der Cursor befindet, nicht. Das lässt mich immer denken, dass es nicht das getan hat, was ich erwartet hatte. Gibt es eine Option, um dieses Verhalten auszuschalten?
RonnBlack

92

Das Falten von Code nach Regionen ist mit Version 1.17 eingetroffen. Faltung nach Regionen Dokumentation . Und v1.19 und 1.23 .

[Im Allgemeinen können Sie beispielsweise ein Leerzeichen hinzufügen // region and // endregion, //region and //endregionund es funktioniert auch.]

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
Java                   //#region and //#endregion
CSS/SCSS/Less:         /* #region */ and /* #endregion */ or /*#region*/ and /*#endregion*/
SCSS/Less:             // #region and // #endregion
Go:                    // region, // endregion and // #region, // #endregion
shellscript:           # region and # endregion
Perl5                  #region and #endregion or =pod and =cut`

Wichtig: Wenn Sie Ihre Sprache nicht in der Liste sehen:

Für jede Sprache stehen auch Ausschnitte für die Marker zur Verfügung. Geben Sie '#' ein und rufen Sie die Code-Vervollständigung auf, um sie anzuzeigen. Wenden Sie sich an den Anbieter der Spracherweiterung, um Regionsmarkierungen für Ihre Sprache zu konfigurieren.

Geben Sie also #und dann Ctrl+ ein Space, um die Regionsmarkierungen für eine beliebige Sprache anzuzeigen.



1
// regionund // endregionarbeiten nicht mit VS Code Version 1.22 (haben jedoch keine Versionen darunter oder darüber getestet). Aber // #regionund // #endregionfunktioniert (beachten Sie das '#' und das Leerzeichen in beiden). Auf diese Weise zeigt ESLint (wenn Sie verwenden) keinen Fehler an, wenn die spaced-commentRegel aktiviert ist (dh nicht auf "Aus" oder "0" gesetzt ist).
Ozanmuyes

In CSS ist es tatsächlich /* #region Foo Bar */und/* #endregion */
toddmo

1
@ozanmuyes es hängt vom Dateityp (Sprache) ab. //regionund //endregionsind für JavaScript.
Lealceldeiro

Funktioniert auch gut in Docker .yaml-Dateien, wenn Sie Microsofts Docker ext installieren: marketplace.visualstudio.com/…
Robert

v1.41: Ich habe XML ausprobiert und es hat funktioniert! <!-- #region --> elements <!-- #endregion -->. Es zeigt den Text nach dem Bereich # im gefalteten Bereich an. Es wird ordnungsgemäß von der aktuellen # Region in die entsprechende # Endregion gefaltet, selbst wenn andere verschachtelt sind - genau wie Klammern in einer Gleichung. Es merkt sich die Falteinstellung für verschachtelte Regionen. Strg + k + Strg + [und Strg + k + Strg +] schließen / öffnen Sie die Falten am Cursor korrekt. (was mir ein wenig rückwärts vorkommt, aber was auch immer) Tolles Zeug!
TonyG

73

Diese Funktion ist jetzt im Standard-Build verfügbar. Damit die Steuerelemente zum Reduzieren / Erweitern angezeigt werden, müssen Sie mit der Maus über den Bereich rechts neben den Zeilennummern fahren, wie in diesem Screenshot gezeigt:

Geben Sie hier die Bildbeschreibung ein


31

Sie sollten Benutzereinstellungen hinzufügen:

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

"editor.foldingStrategy" war bei weitem der hilfreichste Tipp für mich. Ich bearbeite Liquid Code (Shopify) und konnte meinen Code nicht falten. Nachdem ich von "Auto" zu "Einrückung" gewechselt war, schaute VS Code auf die Einrückung und nicht auf die Sprache, die ich benutzte. Sehr hilfreich, danke
Benjamin

24

Die Standardverknüpfung zum Reduzieren / Erweitern lautet:

Ctrl+ Shift+ [: "Falten"

Ctrl+ Shift+ Alt+ [: "Alle falten"

Ctrl+ Shift+ ]: "Entfalten"

Ctrl+ Shift+ Alt+ ]: "Alle entfalten"

Oder gehen Sie zu keybindings.json und ändern Sie es nach Ihren Wünschen.

Zum Beispiel:

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

ist dies auf einige Sprachen beschränkt? funktioniert bei mir unter OSX / Typoskript nicht.
dcsan

1
Bitte überprüfen Sie dies: ctrl+shift+alt+[ "Unfold all"Sie haben [statt geschrieben ]. Korrigieren Sie mich, wenn ich falsch liege.
fWd82

@dcsan es funktioniert auch bei mir in python / linux nicht. Strg + K, Strg + 0 (Null) und Strg + K, Strg + J funktionieren jedoch gemäß der akzeptierten Antwort
klar

es funktioniert nicht
KansaiRobot

19

Wenn keine der Verknüpfungen funktioniert (wie bei mir), können Sie als Problemumgehung auch die Befehlspalette ( Ctrl+ 3oder Ansicht -> Befehlspalette ...) öffnen und Folgendes eingeben fold all:

Geben Sie hier die Bildbeschreibung ein


Ich glaube, ich habe herausgefunden, was passiert ... es faltet den Block nur, wenn das [+] verfügbar ist, in Python beispielsweise nicht das Folgende: github.com/heldersepu/GMapCatcher/blob/master/gmapcatcher/…
Helder Sepulveda

@HelderSepulveda Nun, es werden angeblich Blockkommentare gefaltet, aber Python hat diese nicht. Der von Ihnen verknüpfte Code verwendet mehrere einzeilige Kommentare.
Jorn Vernee

16

ctrl+ k+ 0: Alle Ebenen falten (Namespace, Klasse, Methode, Block)

ctrl+ k+ 1: namspace

ctrl+ k+ 2: Klasse

ctrl+ k+ 3: Methoden

ctrl+ k+ 4: Blöcke

ctrl+ k+ [oder ]: aktueller Cursorblock

ctrl+ k+ j: Entfalten


12

Das Reduzieren wird jetzt in Version 1.0 unterstützt :

Verknüpfungen zum Falten des Quellcodes

Es gibt neue Faltaktionen, um Quellcode-Regionen basierend auf ihrer Faltstufe zu reduzieren.

Es gibt Aktionen, um Level 1 ( Ctrl+ K Ctrl+ 1) auf Level 5 ( Ctrl+ K Ctrl+ 5) zu falten . Verwenden Sie zum Entfalten Alle entfalten ( Ctrl+ Shift+ Alt+ ]).

Die Ebenenfaltungsaktionen gelten nicht für Bereiche, die den aktuellen Cursor enthalten.

Ich hatte ein Problem beim Finden der ]Taste auf meiner Tastatur (norwegisches Layout), und in meinem Fall war es die ÅTaste. (Oder zwei Tasten links und eine unten, beginnend mit der Rücktaste.)



4

Ab Version 1.3.1 (2016-07-17) ist Block Collapse viel praktischer.

Jede Zeile, auf die eine eingerückte Zeile folgt, hat ein '-', um das Reduzieren zu ermöglichen. Wenn der Block reduziert ist, wird er durch ein '+' ersetzt, das den reduzierten Block öffnet.

Das ( Ctrl+ Shift+ Alt+ ]) wirkt sich weiterhin auf alle Blöcke aus und schließt eine Ebene. Jede wiederholte Verwendung schloss eine weitere Ebene. Das ( Ctrl+ Shift+ Alt+ [) funktioniert umgekehrt.

Hurra, Block Collapse funktioniert endlich sinnvoll.


Hinzu kommt, dass Sie mithilfe von Kommentaren benutzerdefinierte Bereiche in Ihrem Code erstellen und ganze benutzerdefinierte Segmente reduzieren können. Tolles Feature!
Tim Cederquist

Dies funktioniert ab dem 13. Juli 2019 nicht mehr. Gibt es eine andere Tastenkombination, die diese ersetzt? (Ein Level nach dem anderen reduzieren / erweitern? {
Martin

3

Steuerelemente zum Falten von Code im Editor, um Knoten von XML-strukturierten Dokumenten und Quellcode in VsCode zu erweitern

Keine technischen Tipps hier, nur einfache Anpassungen der Einstellungen von VsCode.

Ich habe es geschafft, Code-Faltsteuerelemente immer in VsCode anzuzeigen, indem ich in den Einstellungen nach "Falten" gesucht habe. Wählen Sie nun einfach, um diese Steuerelemente immer anzuzeigen. Dies funktioniert mit dem Typescript-Code und HTML von Vorlagen in der Angular 8-Lösung, mit der ich es getestet habe.

Dies wurde mit VsCode Insiders 1.37.0 unter Windows 10 getestet.

Zeigen Sie Code-Faltsteuerelemente immer in VsCode an


3

v1.42 fügt einige nette Verbesserungen hinzu, wie Falten aussehen und funktionieren. Siehe https://github.com/microsoft/vscode-docs/blob/vnext/release-notes/v1_42.md#folded-range-highlighting :

Hervorhebung des gefalteten Bereichs

Gefaltete Bereiche sind jetzt dank einer Hintergrundfarbe für alle gefalteten Bereiche leichter zu erkennen.

Highlight falten

Hervorhebungsfarbe falten Thema: Dunkel +

Die Funktion wird vom Einstellungseditor.foldingHighlight gesteuert und die Farbe kann mit dem Farbeditor.foldBackground angepasst werden.

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

Faltverfeinerungen

Shift + Clickauf der Faltanzeige faltet zuerst nur die inneren Bereiche. Shift + Clickwieder (wenn alle inneren Bereiche bereits gefaltet sind) wird auch der Elternteil gefaltet. Shift + Clickwieder entfaltet sich alles.

Fold Shift Click

Wenn Sie den Befehl Falten (kb ( editor.fold))] für einen bereits gefalteten Bereich verwenden, wird der nächste entfaltete übergeordnete Bereich gefaltet.


2

Auf einem Mac ist dies die RHS-Befehlstaste Kund nicht die linke für die Code-Faltbefehle.

Andernfalls löscht die linke Befehlstaste die aktuelle Zeile K.




0

Ich wünschte, Visual Studio Code könnte damit umgehen:

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

Im Moment ignoriert Visual Studio Code es einfach und wird es nicht reduzieren. Inzwischen erledigen Notepad ++ und PowerGUI das ganz gut.

Update: Ich habe gerade ein Update für Visual Studio Code bemerkt. Dies wird jetzt unterstützt!


0

Hinweis: Diese Verknüpfungen funktionieren nur wie erwartet, wenn Sie Ihre keybindings.json bearbeiten

Ich war mit den Standardverknüpfungen nicht zufrieden. Ich wollte, dass sie wie folgt funktionieren:

  • Falten: Ctrl+ Alt+]
  • Rekursiv falten: Ctrl+ ⇧ Shift+ Alt+]
  • Falten Sie alle: Ctrl+ kdann Ctrl+]
  • Entfalte: Ctrl+ Alt+[
  • Rekursiv entfalten: Ctrl+ ⇧ Shift+ Alt+[
  • Entfalte alle: Ctrl+ kdann Ctrl+[

So richten Sie es ein:

  • Öffnen Preferences: Open Keyboard Shortcuts (JSON)( Ctrl+ ⇧ Shift+ p)
  • Fügen Sie dieser Datei das folgende Snippet hinzu

    Haben Sie bereits benutzerdefinierte Tastenkombinationen zum Falten / Entfalten? Dann müssten Sie sie ersetzen.

    {
        "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"
    },
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.