Visual Studio Code for Windows에서 코드 섹션을 축소하려면 어떻게합니까?


771

Visual Studio Code에서 코드 섹션을 접거나 접는 방법은 무엇입니까?

이 기능이 지원됩니까?

답변:


1351

접기 는 롤아웃되었으며 이제 Visual Studio Code 버전 0.10.11 부터 구현되었습니다 . 사용 가능한 키보드 단축키는 다음과 같습니다.

  • 커서에서 가장 안쪽의 접지 않은 영역을 접습니다.

    • CtrlWindows 및 Linux에서 + Shift+[
    • macOS에서 + +[
  • 펼치기 커서에서 접힌 영역을 펼칩니다 .

    • CtrlWindows 및 Linux에서 + Shift+]
    • macOS에서 + +]
  • 모두 접기 편집기에서 모든 영역을 접습니다.

    • CtrlWindows 및 Linux에서 + ( K=> 0) (영)
    • macOS에서 + ( K=> 0) (영)
  • 모두 펼치기 편집기에서 모든 영역을 펼칩니다 .

    • CtrlWindows 및 Linux에서 + ( K=> J)
    • macOS에서 + ( K=> J)

참조 : https://code.visualstudio.com/docs/getstarted/keybindings


2
@DouglasGaskell 나는 같은 실수를했다. Michael Fulton의 Fold Level대답은 나에게 더 의미가 있습니다.
Dan Marshall

1
코드 버전 문제, Windows 버전 문제 또는 기타 사항을 모르지만 내 PC에서는 Right-Ctrl에서만 작동합니다. 당신은 그것을 주목하고 싶을 수도 있습니다!
화성

6
기본적으로 Ctrl + K, Ctrl + [n] 여기서 n은 접을 수준까지입니다. 따라서 VSCode에서 Ctrl + M, VS (C #)의 Ctrl + O에 해당하는 항목을 찾으려면 Ctrl + K, Ctrl + 3이됩니다.
Yashash Gaurav

3
Preza8을 눌러 @ F1및 유형은 거나 펼쳐
AlexG

2
@ Preza8 또한 현재 할당 된 키 바인딩을 보여줍니다. 할당 된 것이 없으면 직접 할당 할 수 있습니다. 또한 사용자 정의 GUI 버튼을 추가하는 확장 기능이있을 수 있습니다
AlexG

222

2017 년 4 월 Visual Studio Code 버전 1.12.0부터 문서의 기본 편집> 접기 섹션을 참조하십시오 .

기본 키는 다음과 같습니다.

모두 접기 : CTRL+ K, CTRL+ 0(영)

접기 레벨 [n] : CTRL+ K, CTRL+ [n]*

모두 펼치기 : CTRL+ K, CTRL+J

접기 지역 : CTRL+ K, CTRL+[

지역 펼치기 : CTRL+ K, CTRL+]

* Fold Level : 가장 외부 클래스를 제외한 모든 것을 접으려면 CTRL+ K, CTRL+1

Mac : Prajeet 덕분에 대신 사용CTRL


IDE 시작 / 종료 사이의 접힘 상태를 저장하고 복원합니까?
Green

어떤 이유 ctrl+k,ctrl+num는 숫자 키패드가 아닌 쿼티 위의 숫자에서만 작동합니다.
MotKohn

2
레벨 [n]으로 접기는 커서가 위치한 섹션을 접지 않습니다. 이것은 항상 내가 기대했던 것을하지 않았다고 생각하게합니다. 이 동작을 해제 할 수있는 옵션이 있습니까?
RonnBlack

92

지역별로 코드 접기가 v1.17에 도착했습니다. 지역별 접는 문서 . 그리고 v1.191.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그리고 // endregionVS 코드 버전 1.22와 함께 작동하지 않습니다 (버전 이하 또는하지만 위의 테스트하지 않았습니다). 그러나 // #region// #endregion작업 (모두에서 '#'과 공간을 참고). 이런 식으로 ESLint (사용중인 경우)는 spaced-comment규칙이 켜져 있으면 (즉, 'off'또는 0으로 설정되지 않은 경우) 오류를 표시 하지 않습니다.
ozanmuyes

CSS에서, 사실의 /* #region Foo Bar *//* #endregion */
toddmo

1
@ozanmuyes 파일 형식 (언어)에 따라 다릅니다. //region그리고 //endregion자바 스크립트입니다.
lealceldeiro

Microsoft의 docker ext : marketplace.visualstudio.com/…
Robert

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"는 지금까지 가장 유용한 팁이었습니다. Liquid 코드 (Shopify)를 편집 중이며 코드를 접을 수 없습니다. '자동'에서 '들여 쓰기'로 전환 한 후 VS Code는 내가 사용하고있는 특정 언어가 아닌 들여 쓰기를 살펴 보았습니다. 매우 도움이되었습니다.
Benjamin

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 / typescript에서 작동하지 않습니다.
dcsan

1
이것을 검토하십시오 : 대신에 ctrl+shift+alt+[ "Unfold all"썼습니다 . 내가 틀렸다면 나를 바로 잡으십시오. []
fWd82

@dcsan 파이썬 / 리눅스에서도 작동하지 않습니다. Ctrl + K, Ctrl + 0 (영) 및 Ctrl + K, Ctrl + J는 허용 된 답변에 따라 작동합니다.
cleary

작동하지 않음
KansaiRobot

19

해결 방법으로 명령 Ctrl단축키 ( + 3또는보기-> 명령 팔레트 ...)를 열고 다음을 입력 할 수도 있습니다 fold all.

여기에 이미지 설명을 입력하십시오


나는 무슨 일이 일어 났는지 알아 냈다고 생각합니다 ... [+]가있는 경우에만 블록을 접습니다. 예를 들어 파이썬에서는 다음을 접지 않습니다. github.com/heldersepu/GMapCatcher/blob/master/gmapcatcher/…
Helul Sepulveda

@HelderSepulveda 글쎄, 아마도 블록 주석을 접을 것이지만, 파이썬에는 그러한 주석이 없습니다. 연결 한 코드는 여러 개의 한 줄 주석을 사용합니다.
Jorn Vernee

16

ctrl+ k+ 0: 모든 레벨을 접습니다 (네임 스페이스, 클래스, 메소드, 블록)

ctrl+ k+ 1: 남 공간

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)부터 Block Collapse가 훨씬 더 편리합니다.

들여 쓰기 된 줄 다음에 오는 줄은 접을 수있는 '-'문자를 갖습니다. 블록이 축소되면 접힌 블록을 여는 '+'문자로 대체됩니다.

( Ctrl+ Shift+ Alt+ ])는 여전히 모든 블록에 영향을 미치며 한 레벨을 닫습니다. 반복 사용마다 한 단계 더 닫혔습니다. ( Ctrl+ Shift+ Alt+ [)는 반대 방식으로 작동합니다.

Hooray, 블록 축소는 마침내 유용하게 작동합니다.


이것에 덧붙여-코드 영역 주위에 주석을 들여 쓰지 않으면 주석을 사용하여 코드에서 사용자 정의 영역을 작성하고 전체 사용자 정의 세그먼트를 축소 할 수 있습니다! 훌륭한 기능!
Tim Cederquist 2016 년

2019 년 7 월 13 일부터 작동하지 않습니다.이를 대체하는 다른 키보드 단축키가 있습니까? (한 번에 한 레벨 씩 접거나 펼치시겠습니까? {
Martin

3

VsCode에서 XML 구조 문서 및 소스 코드의 노드를 확장하기위한 편집기 내부의 코드 폴딩 컨트롤

여기에는 기술적 팁이 없으며 VsCode의 기본 설정을 간단히 조정하면됩니다.

환경 설정으로 이동하여 '폴딩'을 검색하여 VsCode에서 항상 코드 접기 컨트롤을 표시했습니다. 이제이 컨트롤을 항상 표시하도록 선택하십시오. 이것은 내가 테스트 한 Angular 8 솔루션의 Typescript 코드 및 템플릿 HTML과 함께 작동합니다.

이것은 Windows 10 OS에서 실행되는 VsCode Insiders 1.37.0으로 테스트되었습니다.

VsCode에서 항상 코드 접기 컨트롤 표시


3

v1.42는 접기의 모양과 기능에 몇 가지 훌륭한 개선 사항을 추가합니다. https://github.com/microsoft/vscode-docs/blob/vnext/release-notes/v1_42.md#folded-range-highlighting 참조 하십시오 :

접힌 범위 강조

모든 접힌 범위의 배경색으로 인해 접힌 범위를 쉽게 찾을 수 있습니다.

배 하이라이트

강조 색상 테마 접기 : Dark +

이 기능은 설정 editor.foldingHighlight에 의해 제어되며 색상은 color editor.foldBackground로 사용자 지정할 수 있습니다.

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

접는 수정

Shift + Click접는 표시기에서 먼저 내부 범위 만 접습니다. Shift + Click다시 (모든 내부 범위가 이미 접혀있을 때) 부모도 접습니다. Shift + Click다시 모두 펼쳐집니다.

폴드 시프트 클릭

editor.fold이미 접힌 범위 에서 접기 명령 (kb ( ))]을 사용하면 다음으로 펼쳐진 부모 범위가 접 힙니다.


2

Mac에서는 K코드 접기 명령의 왼쪽이 아니라 RHS Command 키 입니다.

그렇지 않으면 왼쪽 명령 키가 현재 줄을 삭제합니다 K.


2

이 기능은 이제 Visual Studio Code 1.17 부터 지원됩니다 . 당신의 코드 블록을 축소 / 배 단지 등 지역 태그를 추가 //#region my block name하고 //#endregion타이프 / 자바 스크립트로 코딩합니다.

예:

지역 접기



0

Visual Studio Code가 다음을 처리 할 수 ​​있기를 바랍니다.

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

현재 Visual Studio Code는이를 무시하고 축소하지 않습니다. 한편 메모장 ++와 PowerGUI는 이것을 잘 처리합니다.

업데이트 : 방금 Visual Studio Code에 대한 업데이트를 발견했습니다. 이제 지원됩니다!


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"
    },
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.