Jak zwinąć sekcje kodu w programie Visual Studio Code dla systemu Windows?


770

Jak złożyć lub zwinąć sekcje kodu w programie Visual Studio Code?

Czy ta funkcja jest obsługiwana?

Odpowiedzi:


1351

Składanie zostało wdrożone i jest teraz wdrażane od wersji Visual Studio Code 0.10.11 . Dostępne są następujące skróty klawiaturowe:

  • Fold składa się w najbardziej wewnętrzny niezłapany obszar pod kursorem:

    • Ctrl+ Shift+ [w systemach Windows i Linux
    • ⌥+ ⌘+ [w systemie macOS
  • Rozłóż rozwija zwinięty region pod kursorem:

    • Ctrl+ Shift+ ]w systemach Windows i Linux
    • ⌥+ ⌘+ ]w systemie macOS
  • Fold All składa wszystkie regiony w edytorze:

    • Ctrl+ ( K=> 0) (zero) w systemach Windows i Linux
    • ⌘+ ( K=> 0) (zero) na macOS
  • Unfold All rozwija wszystkie regiony w edytorze:

    • Ctrl+ ( K=> J) w systemach Windows i Linux
    • ⌘+ ( K=> J) na macOS

Odnośniki: https://code.visualstudio.com/docs/getstarted/keybindings


2
@DouglasGaskell Popełniłem ten sam błąd. To zero, a nie odpowiedź Michaela Fultona Fold Levelbyła dla mnie bardziej sensowna.
— Dan Marshall

1
Nie wiem, czy jest to problem z wersją kodu, problem z wersją systemu Windows, czy coś innego, ale na moim komputerze działa tylko z prawym klawiszem Ctrl. Możesz to zauważyć!
— Mars

6
Jest to po prostu Ctrl + K, Ctrl + [n], gdzie n to liczba poziomów do której chcesz złożyć. Dlatego jeśli szukasz odpowiednika Ctrl + M, Ctrl + O VS (C #) na VSCode, będzie to Ctrl + K, Ctrl + 3.
— Yashash Gaurav,

3
@ Preza8 Naciśnij F1i wpisz Fold lub Unfold
— AlexG

2
@ Preza8 Pokazuje również aktualnie przypisane przypisanie klawiszy, jeśli nie zostało przypisane, możesz je przypisać samodzielnie. Ponadto może istnieć rozszerzenie do dodawania niestandardowych przycisków GUI
— AlexG

222

Począwszy od wersji Visual Studio Code 1.12.0, kwiecień 2017 r., Patrz Edycja podstawowa> sekcja Składanie w dokumentacji.

Domyślne klucze to:

Zwiń wszystko: CTRL+ K, CTRL+ 0(zero)

Poziom składania [n]: CTRL+ K, CTRL+ [n]*

Rozwiń wszystko: CTRL+ K, CTRL+J

Fold Region: CTRL+ K, CTRL+[

Rozwiń region: CTRL+ K, CTRL+]

* Poziom składania: aby spasować wszystkie klasy oprócz najbardziej zewnętrznych, spróbuj CTRL+ K, CTRL+1

Mac: użyj ⌘zamiast CTRL(dzięki Prajeet)


Czy zapisuje i przywraca stan fałdowania między uruchomieniem / wyłączeniem IDE?
— Zielony,

Z jakiegoś powodu ctrl+k,ctrl+numdziała tylko na liczbach powyżej qwerty, a nie na numpad
— MotKohn 28.09.17

2
Fold to level [n] nie składa sekcji, w której znajduje się kursor. To zawsze sprawia, że ​​myślę, że nie spełniło moich oczekiwań. Czy istnieje opcja wyłączenia tego zachowania?
— RonnBlack

92

W wersji 1.11 pojawiło się składanie kodów według regionów . Składanie dokumentacji według regionów . Oraz v1.19 i 1.23 .

[Ogólnie można dodać przestrzeń, na przykład // region and // endregiondo //region and //endregioni będzie działać.]

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

Każdy język ma również fragmenty dostępne dla znaczników. Wpisz „#” i wywołaj uzupełnianie kodu, aby je zobaczyć. Aby skonfigurować znaczniki regionu dla Twojego języka, skontaktuj się z dostawcą rozszerzenia języka.

v1.23 dodaje regiony CSS / SCSS / Mniej regionów zwijania kodu:

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

Dodano v1.35:

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

v.1.36 dodaje shellscript, patrz [problem github: dodawanie znaczników składania shellscript]. 4 :

shellscript:          # region and # endregion

v1.42 dodawanie Perl5 itp. (patrz https://github.com/microsoft/vscode-docs/commit/ec3e9d07724510eaf0c3b7200b09c9c22d3be7c3 ):

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


Wersja 1.39 dodaje możliwość przełączania składania za pomocą polecenia editor.toggleFold.

Jest domyślnie związany z Ctrl+ K Ctrl+ L. Zobacz https://github.com/microsoft/vscode-docs/blob/vnext/release-notes/v1_39.md#toggle-folding .


1
// regioni // endregionnie działają z wersją VS Code 1.22 (jednak nie testowałem wersji poniżej lub powyżej). Ale // #regioni // #endregiondziała (zwróć uwagę na „#” i spację w obu). W ten sposób ESLint (jeśli używasz) nie wyświetli błędu, jeśli spaced-commentreguła jest włączona (tzn. Nie jest ustawiona na „wyłączone” lub 0).
— ozanmuyes

W CSS jest to /* #region Foo Bar */i/* #endregion */
— toddmo

1
@ozanmuyes to zależy od typu pliku (języka). //regioni //endregionsą dla JavaScript.
— lealceldeiro

Ładnie działa również w plikach .yaml Dockera, jeśli zainstalujesz dokowanie Microsoft ext: marketplace.visualstudio.com/…
— Robert

v1.41: Próbowałem XML i zadziałało! <!-- #region --> elements <!-- #endregion -->. Wyświetla tekst następujący po #region w sekcji złożonej. Prawidłowo składa się z bieżącego # regionu do odpowiedniego # regionu, nawet jeśli są inne zagnieżdżone - podobnie jak nawiasy w dowolnym równaniu. Zapamiętuje ustawienie zagięcia dla zagnieżdżonych regionów. Ctrl + k + Ctrl + [i Ctrl + k + Ctrl +] zamknij / otwórz fałdy poprawnie przy kursorze. (co wydaje mi się trochę zacofane, ale whatevah) Świetne rzeczy!
— TonyG

73

Ta funkcja jest teraz dostępna w standardowej wersji. Aby wyświetlić kontrolki zwinięcia / rozwinięcia, musisz najechać myszką na obszar po prawej stronie numerów linii, jak pokazano na tym zrzucie ekranu:

Wpisz opis zdjęcia tutaj


31

Powinieneś dodać ustawienia użytkownika:

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

„Editor.foldingStrategy” był dla mnie najbardziej pomocną wskazówką. Edytuję kod ciekły (Shopify) i nie mogłem złożyć swojego kodu. Kiedy przeszedłem z „auto” na „wcięcie” VS Code spojrzał na wcięcie, a nie na konkretny język, którego używałem, bardzo pomocne, dziękuję
— Benjamin,

24

Domyślny skrót do zwinięcia / przedłużenia to:

Ctrl+ Shift+ [: „Fold”

Ctrl+ Shift+ Alt+ [: „Fold all”

Ctrl+ Shift+ ]: „Rozłóż”

Ctrl+ Shift+ Alt+ ]: „Rozwiń wszystko”

Lub przejdź do keybindings.json i zmieniaj, jak chcesz.

Na przykład:

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

czy jest to ograniczone do niektórych języków? nie działa dla mnie na OSX / maszynopisie.
— dcsan

1
Przeczytaj to: ctrl+shift+alt+[ "Unfold all"Napisałeś [zamiast ]. Popraw mnie, jeśli się mylę.
— fWd82

@dcsan to też nie działa dla mnie w python / linux. Ctrl + K, Ctrl + 0 (zero) i Ctrl + K, Ctrl + J działają jednak zgodnie z przyjętą odpowiedzią
— jasne

to nie działa
— KansaiRobot

19

Jeśli żaden skrót nie działa (jak dla mnie), w celu obejścia tego problemu możesz również otworzyć paletę poleceń ( Ctrl+ 3lub Widok -> Paleta poleceń ...) i wpisać fold all:

wprowadź opis zdjęcia tutaj


Chyba zorientowałem się, co się dzieje ... składa blok tylko wtedy, gdy jest dostępny [+], na przykład w pythonie nie składa następujących elementów: github.com/heldersepu/GMapCatcher/blob/master/gmapcatcher/...
— Helder Sepulveda

@HelderSepulveda Cóż, podobno składa komentarze blokowe, ale python ich nie ma. W połączonym kodzie zastosowano wiele komentarzy w jednym wierszu.
— Jorn Vernee

16

ctrl+ k+ 0: Zwiń wszystkie poziomy (przestrzeń nazw, klasa, metoda, blok)

ctrl+ k+ 1: namspace

ctrl+ k+ 2: klasa

ctrl+ k+ 3: metody

ctrl+ k+ 4: bloki

ctrl+ k+ [lub ]: bieżący blok kursora

ctrl+ k+ j: Rozłóż


12

Zwijanie jest teraz obsługiwane w wersji 1.0 :

Skróty do składania kodu źródłowego

Wprowadzono nowe czynności składania, które pozwalają zwinąć regiony kodu źródłowego na podstawie ich poziomu składania.

Istnieją akcje, aby spasować poziom 1 ( Ctrl+ K Ctrl+ 1) do poziomu 5 ( Ctrl+ K Ctrl+ 5). Aby rozwinąć, użyj opcji Rozwiń wszystko ( Ctrl+ Shift+ Alt+ ]).

Akcje składania poziomu nie dotyczą regionu zawierającego bieżący kursor.

Miałem problem ze znalezieniem ]przycisku na klawiaturze (układ norweski), aw moim przypadku był to Åprzycisk. (Lub dwa przyciski w lewo i jeden w dół, zaczynając od przycisku Backspace.)



4

Od wersji 1.3.1 (2016-07-17) Block Collapse jest znacznie wygodniejszy.

Każda linia po linii wciętej będzie miała znak „-”, aby umożliwić zwinięcie. Jeśli blok jest zwinięty, zostanie zastąpiony znakiem „+”, który otworzy zwinięty blok.

( Ctrl+ Shift+ Alt+ ]) Nadal będzie wpływać na wszystkie bloki, zamykając jeden poziom. Każde powtórne użycie zamykało jeden poziom. ( Ctrl+ Shift+ Alt+ [) Działa w odwrotny sposób.

Brawo, zawalenie się bloku w końcu działa pożytecznie.


Dodając do tego - jeśli wygrasz komentarz wokół regionu kodu, możesz użyć komentarzy, aby zbudować niestandardowe regiony w kodzie i zwinąć całe niestandardowe segmenty! Świetna funkcja!
— Tim Cederquist,

To nie działa od 13 lipca 2019 r. Czy istnieje inny skrót keboard zastępujący go? (zwijanie / rozwijanie jednego poziomu na raz? {
— Martin

3

Kontrolki składania kodu wewnątrz edytora w celu rozszerzenia węzłów dokumentów o strukturze XML i kodu źródłowego w VsCode

Nie ma tu żadnych wskazówek technicznych, wystarczy proste dostosowanie preferencji VsCode.

Udało mi się wyświetlić elementy sterujące składaniem kodu zawsze w VsCode, przechodząc do Preferencji i szukając „składania”. Teraz wybierz, aby zawsze wyświetlać te elementy sterujące. Działa to z kodem Typescript i HTML szablonów w rozwiązaniu Angular 8, z którym go testowałem.

Zostało to przetestowane z VsCode Insiders 1.37.0 działającym na systemie operacyjnym Windows 10.

Pokaż kontrolki składania kodu zawsze w VsCode


3

Wersja 1.42 dodaje kilka udoskonaleń dotyczących wyglądu i działania fałd. Zobacz https://github.com/microsoft/vscode-docs/blob/vnext/release-notes/v1_42.md#folded-range-highlighting :

Podświetlanie zakresu składanego

Zakresy złożone są teraz łatwiejsze do odkrycia dzięki kolorowi tła dla wszystkich zakresów złożonych.

krotnie podkreśl

Kolor podświetlenia krotnie Motyw: Ciemny +

Funkcją steruje edytor ustawień. Składanie Podświetlanie, a kolor można dostosować za pomocą edytora kolorów. Składanka.

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

Składane udoskonalenia

Shift + Clickna wskaźniku składania najpierw składa tylko wewnętrzne zakresy. Shift + Clickponownie (gdy wszystkie wewnętrzne zakresy są już złożone) spowoduje również spasowanie rodzica. Shift + Clickponownie rozwija się wszystko.

kliknij z wciśniętym klawiszem Shift

Gdy użyjesz polecenia Fold (kb ( editor.fold))] na już złożonym zakresie, następny rozłożony zakres macierzysty zostanie złożony.


2

Na komputerze Mac jest to klawisz polecenia RHS ⌘K, a nie lewy klawisz dla poleceń składania kodu.

W przeciwnym razie klawisz Command lewa ręka będzie usunąć bieżącą linię ⌘K.


2

Ta funkcja jest teraz obsługiwana, ponieważ Visual Studio Code 1.17 . Aby złożyć / zwinąć blok kodu, po prostu dodaj tagi regionu, takie jak //#region my block namei //#endregionjeśli kodujesz w TypeScript / JavaScript.

Przykład:

Składanie regionu



0

Chciałbym, aby Visual Studio Code mógł obsługiwać:

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

W tej chwili program Visual Studio Code po prostu go ignoruje i nie zwinie go. Tymczasem Notepad ++ i PowerGUI radzą sobie z tym dobrze.

Aktualizacja: Właśnie zauważyłem aktualizację programu Visual Studio Code. To jest teraz obsługiwane!


0

Uwaga: te skróty działają tylko zgodnie z oczekiwaniami, jeśli edytujesz keybindings.json

Nie byłem zadowolony z domyślnych skrótów, chciałem, aby działały w następujący sposób:

  • Krotnie: Ctrl+ Alt+]
  • Złożyć rekurencyjnie: Ctrl+ ⇧ Shift+ Alt+]
  • Zwiń wszystko: Ctrl+ knastępnie Ctrl+]
  • Rozłóż: Ctrl+ Alt+[
  • Rozłóż rekurencyjnie: Ctrl+ ⇧ Shift+ Alt+[
  • Rozwiń wszystko: Ctrl+ knastępnie Ctrl+[

Aby skonfigurować:

  • Otwórz Preferences: Open Keyboard Shortcuts (JSON)( Ctrl+ ⇧ Shift+ p)
  • Dodaj następujący fragment kodu do tego pliku

    Masz już niestandardowe skróty klawiszowe do składania / rozwijania? Następnie musisz je wymienić.

    {
        "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"
    },
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.