Як згорнути розділи коду в коді Visual Studio для Windows?


771

Як скласти або згорнути розділи коду в Visual Studio Code?

Чи підтримується ця функція?

Відповіді:


1351

Розгортання було розгорнуто і зараз реалізоване з Visual Studio Code версії 0.10.11 . Доступні ці комбінації клавіш:

  • Складіть складку у курсорі найпотужнішої області, що не стикається:

    • Ctrl+ Shift+ [у Windows та Linux
    • ⌥+ ⌘+ [на macOS
  • Розгортає розгорнуту область за курсором:

    • Ctrl+ Shift+ ]у Windows та Linux
    • ⌥+ ⌘+ ]на macOS
  • Згорнути Усі складання всіх регіонів у редакторі:

    • Ctrl+ ( K=> 0) (нуль) у Windows та Linux
    • ⌘+ ( K=> 0) (нуль) на macOS
  • Розгортати Усі розгортає всі регіони в редакторі:

    • Ctrl+ ( K=> J) в Windows та Linux
    • ⌘+ ( K=> J) на macOS

Список літератури: https://code.visualstudio.com/docs/getstarted/keybindings


2
@DouglasGaskell я зробив ту саму помилку. Це не нуль, а відповідь Майкла Фултона мала Fold Levelбільше сенсу для мене.
— Ден Маршалл

1
Не знаю, чи це випуск версії коду, випуск версії Windows чи щось інше, але на моєму ПК він працює лише з Right-Ctrl. Ви можете це відзначити!
— Марс

6
Це в основному Ctrl + K, Ctrl + [n], де n - це рівень рівня, на який потрібно скласти. Отже, якщо ви шукаєте еквівалент Ctrl + M, Ctrl + O VS (C #) на VSCode, це буде Ctrl + K, Ctrl + 3.
— Яшаш Гаурав

3
@ Preza8 Натисніть F1і тип Fold або Відкриваються
— AlexG

2
@ Preza8 Він також показує вам поточне додавання клавіш, якщо жодне не призначено, ви можете призначити його самостійно. Також може бути розширення, щоб додати спеціальні кнопки GUI
— AlexG

222

Станом на версію Visual Studio Code версії 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

Маки: використовувати ⌘замість CTRL(спасибі Prajeet)


Чи зберігає та відновлює стан складок між запуском / вимиканням IDE?
— Зелений

Якась причина ctrl+k,ctrl+numпрацює лише на числах вище qwerty, а не на
— numpad

2
Перехід на рівень [n] не згинає розділ, де знаходиться курсор. Це завжди змушує мене думати, що це не те, що я очікував. Чи є можливість вимкнути цю поведінку?
— RonnBlack

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
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`

Важливо: Якщо ви не бачите своєї мови у списку ::

Кожна мова також має фрагменти, доступні для маркерів. Введіть "#" та викликайте завершення коду, щоб побачити їх. Щоб налаштувати маркери регіонів для вашої мови, зверніться до постачальника послуг з розширення мови.

Тому наберіть, #а потім Ctrl+, Spaceщоб побачити маркери регіону для будь-якої мови.



1
// regionі // endregionне працюють з кодом VS версії 1.22 (не перевіряли версії нижче та вище). Але // #regionі // #endregionпрацює (відмітьте "#" та пробіл в обох). Таким чином, ESLint (якщо ви використовуєте) не відображатиметься помилок, якщо spaced-commentправило увімкнено (тобто не встановлено значення "вимкнено" або 0).
— озанмуї

У CSS - це насправді /* #region Foo Bar */і/* #endregion */
— tddmo

1
@ozanmuyes це залежить від типу файлу (мови). //regionі //endregionпризначені для JavaScript.
— lealceldeiro

Чудово працює і в файлах Docker .yaml, якщо ви встановите докер Microsoft ext: marketplace.visualstudio.com/…
— Роберт

v1.41: Я спробував XML, і він працював! <!-- #region --> elements <!-- #endregion -->. Він відображає текст за номером #region у складеному розділі. Він належним чином складається з поточного #region у відповідний #endregion, навіть якщо є інші вкладені - як і дужки в будь-якому рівнянні. Він запам'ятовує налаштування складок для вкладених регіонів. Ctrl + k + Ctrl + [і Ctrl + k + Ctrl +] закрийте / відкрийте складки правильно за курсором. (що мені здається трохи назад, але whatevah) Чудові речі!
— TonyG

73

Ця функція доступна в стандартній збірці зараз. Щоб відобразити елементи згортання / розгортання, вам потрібно навести курсор миші на область праворуч від номерів рядків, як показано на цьому знімку екрана:

Введіть тут опис зображення


31

Ви повинні додати налаштування користувача:

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

"editor.foldingStrategy" був, безумовно, найбільш корисною порадою для мене. Я редагую Рідкий код (Shopify) і не зміг скласти свій код. Як тільки я перейшов з "авто" на "відступ", Кодекс VS переглянув відступ не конкретною мовою, якою я користувався, дуже корисно, дякую
— Бенджамін

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 / typecript.
— dcsan

1
Перегляньте це: ctrl+shift+alt+[ "Unfold all"Ви написали [замість ]. Виправте мене, якщо я помиляюся.
— fWd82

@dcsan також не працює для мене в python / linux. Ctrl + K, Ctrl + 0 (нуль) і Ctrl + K, Ctrl + J , зробити роботу , хоча відповідно до прийнятого відповіддю
— Cleary

це не працює
— KansaiRobot

19

Якщо жоден із ярликів не працює (як для мене), ви також можете відкрити палітру команд ( Ctrl+ 3або Переглянути -> Палітра команд ...) і ввести fold all:

введіть тут опис зображення


Я думаю, що я зрозумів, що відбувається ... він блокує блок лише за наявності [+], у python, наприклад, він не складається наступним чином: github.com/heldersepu/GMapCatcher/blob/master/gmapcatcher/…
— Хелдер Сепульведа

@HelderSepulveda Ну, це нібито складає блокові коментарі, але у python таких немає. Код, який ви зв'язали, використовує кілька однорядкових коментарів.
— Джорн Верні

16

ctrl+ k+ 0: Складайте всі рівні (простір імен, клас, метод, блок)

ctrl+ k+ 1: namspace

ctrl+ k+ 2: клас

ctrl+ k+ 3: методи

ctrl+ k+ 4: блоки

ctrl+ k+ [або ]: поточний блок курсору

ctrl+ k+ j: Розгорнути


12

Тепер випуск підтримується у версії 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

Елементи управління складанням коду всередині редактора для розширення вузлів документів, структурованих XML, та вихідного коду у VsCode

Тут немає ніяких технічних порад, просто прості налаштування уподобань VsCode.

Мені вдалося показувати елементи керування складання коду завжди у VsCode, перейшовши в Налаштування та шукаючи "складання". Тепер просто виберіть, щоб завжди відображати ці елементи управління. Це працює з кодом Typescript та HTML шаблонів у розчині Angular 8, з яким я тестував його.

Це було протестовано з VsCode Insiders 1.37.0, що працює на ОС Windows 10.

Показуйте елементи керування складання коду завжди у VsCode


3

v1.42 додає деякі приємні уточнення до того, як виглядають і функціонують складки. Дивіться https://github.com/microsoft/vscode-docs/blob/vnext/release-notes/v1_42.md#folded-range-highlighting :

Підсвічування діапазону зі складним діапазоном

Складені діапазони тепер простіше виявити завдяки кольору фону для всіх складених діапазонів.

складчасте виділення

Тема кольору кольорів складного кольору: Темний +

Ця функція управляється редактором параметрів.foldingHighlight, а колір можна налаштувати за допомогою редактора кольорів.foldBackground.

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

Складні доопрацювання

Shift + Clickна індикаторі складання спочатку лише складаються внутрішні діапазони. Shift + Clickзнову (коли всі внутрішні діапазони вже складені) також складе батьківський. Shift + Clickзнову розгортає всіх.

клацніть клавішу зсуву

При використанні команди Fold (kb ( editor.fold))] у вже складеному діапазоні буде наступний розгорнутий батьківський діапазон.


2

Для Mac це командний ключ RHS, ⌘K , а не ліва для команд складання коду.

В іншому випадку ліва рука Command ключ буде видалити поточний рядок ⌘K.


2

Ця функція зараз підтримується, оскільки Visual Studio Code 1.17 . Щоб скласти / згорнути блок коду, просто додайте теги регіону, наприклад, //#region my block nameта //#endregionякщо кодування в TypeScript / JavaScript.

Приклад:

Область складання



0

Я хочу, щоб Visual Studio Code міг обробляти:

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

Зараз Visual Studio Code просто ігнорує його і не згортає його. Тим часом Notepad ++ та PowerGUI справляються із цим просто чудово.

Оновлення: я щойно помітив оновлення для коду Visual Studio. Це зараз підтримується!


0

Примітка. Ці ярлики працюють лише, як очікувалося, якщо ви редагуєте keybindings.json

Я не був задоволений ярликами за замовчуванням, хотів, щоб вони працювали так:

  • Складіть: 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 та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.