Visual Studio Code for Windowsでコードのセクションを折りたたむにはどうすればよいですか?


772

Visual Studio Codeでコードのセクションを折りたたんだり折りたたんだりするにはどうすればよいですか?

この機能はサポートされていますか?

回答:


1353

折りたたみはロールアウトされており、Visual Studio Code バージョン0.10.11以降に実装されています。次のキーボードショートカットを利用できます。

  • Foldは、カーソルの最も内側の折りたたまれていない領域を折りたたみます。

    • Ctrl+ Shift+ [WindowsおよびLinux
    • + + [macOS
  • 展開]は、カーソルで崩壊地域を繰り広げます。

    • Ctrl+ Shift+ ]WindowsおよびLinux
    • + + ]macOS
  • [すべて折りたたむ]は、エディター内のすべての領域を折りたたみます。

    • Ctrl+(K=> 0)(ゼロ)WindowsおよびLinux
    • +(K=> 0)(ゼロ)(macOS)
  • Unfold Allは、エディター内のすべての領域を展開します。

    • Ctrl+(K=> J)WindowsおよびLinux
    • +(K=> J)(macOS)

参照: https : //code.visualstudio.com/docs/getstarted/keybindings


2
@DouglasGaskell同じ過ちを犯した。oではなくゼロです。MichaelFultonのFold Level答えは私にはもっと理にかなっています。
ダンマーシャル

1
コードバージョンの問題なのか、Windowsバージョンの問題なのか、その他の問題なのかはわかりませんが、私のPCでは右Ctrlでしか機能しません。あなたはそれを覚えておきたいかもしれません!
火星

6
基本的にはCtrl + K、Ctrl + [n]です。nは、折りたたむまでのレベル番号です。したがって、VSCodeでVS(C#)のCtrl + M、Ctrl + Oに相当するものを探している場合は、Ctrl + K、Ctrl + 3になります。
Yashash Gaurav

3
Preza8押し@ F1と入力する折りたたみまたは展開]
AlexG

2
@ Preza8現在割り当てられているキーバインドも表示されます。割り当てられていない場合は、自分で割り当てることができます。また、カスタムGUIボタンを追加する拡張機能がある可能性があります
AlexG

222

Visual Studio Codeバージョン1.12.0、2017年4月現在、ドキュメントの「基本編集」>「折りたたみ」セクションを参照してください。

デフォルトのキーは次のとおりです。

すべて折りたたむ:CTRL+ KCTRL+ 0(ゼロ)

フォールドレベル[n]:CTRL+ KCTRL+ [n]*

すべて展開:CTRL+ KCTRL+J

折りたたみ領域:CTRL+ KCTRL+[

展開領域:CTRL+ KCTRL+]

*折りたたみレベル:最も外側のクラス以外のすべてを折りたたむには、CTRL+ KCTRL+を試してください1

Macs:(thanks Prajeet)の代わりに使用CTRL


IDEの起動/シャットダウン間の折りたたみ状態を保存および復元しますか?
Green

いくつかの理由ctrl+k,ctrl+numはテンキーではなくqwertyを超える数値でのみ機能する
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ルールがオン(つまり、「オフ」または0に設定されていない)の場合にエラーを表示しません。
ozanmuyes

CSSでは、それは実際/* #region Foo Bar *//* #endregion */
toddmo、2018年

1
@ozanmuyesファイルの種類(言語)によって異なります。//regionおよび//endregionJavaScript用です。
lealceldeiro

あなたは、Microsoftのドッキングウィンドウの内線をインストールした場合、同様ドッカー.yamlファイルでうまく動作:marketplace.visualstudio.com/...
ロバート

v1.41:XMLを試してみましたが、うまくいきました!<!-- #region --> elements <!-- #endregion -->。折りたたみセクションの#regionに続くテキストを表示します。他の式がネストされている場合でも、現在の#regionから対応する#endregionまで適切に折りたたまれます。ネストされた領域の折りたたみ設定を記憶しています。Ctrl + k + Ctrl + [およびCtrl + k + Ctrl +]は、カーソルで折り目を正しく閉じたり開いたりします。(私には少し後ろ向きに見えますが、なんとか)素晴らしいものです!
TonyG

73

この機能は、標準ビルドで現在利用可能です。折りたたみ/展開コントロールを表示するには、次のスクリーンショットに示すように、行番号のすぐ右側の領域にマウスを置く必要があります。

ここに画像の説明を入力してください


31

ユーザー設定を追加する必要があります。

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

「editor.foldingStrategy」は、私にとってこれまでで最も役立つヒントでした。Liquidコード(Shopify)を編集していますが、コードを折りたたむことができませんでした。「自動」から「インデント」に切り替えた後、VSコードは使用していた特定の言語ではなくインデントを確認しました。非常に役に立ちました。ありがとう
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 python / linuxでも動作しません。Ctrl + K、Ctrl + 0(ゼロ)およびCtrl + K、Ctrl + Jは、受け入れられた回答
どおりに機能し

動作しません
KansaiRobot

19

(私のように)どのショートカットも機能していない場合は、回避策としてコマンドパレットを開き(Ctrl+ 3または[表示]-> [コマンドパレット...])、次のように入力しfold allます。

ここに画像の説明を入力してください


私は何が起こるかを理解したと思います...利用可能な[+]がある場合にのみブロックを折りたたみます。たとえば、Pythonでは次を折りたたみません。github.com
Helder Sepulveda

@HelderSepulvedaまあ、それはおそらくブロックコメントを折りたたむでしょうが、Pythonにはそれらがありません。リンクしたコードは複数の単一行コメントを使用しています。
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+ ])を使用します。

レベルの折りたたみアクションは、現在のカーソルを含む領域には適用されません。

]キーボードのボタン(ノルウェー語のレイアウト)を見つけるのに問題があり、私の場合はÅボタンでした。(または、2つのボタンが左にあり、1つがバックスペースボタンから始まります。)



4

バージョン1.3.1(2016-07-17)以降、ブロックの折りたたみはより便利になりました。

インデントされた行が続くすべての行には、折りたたみを可能にする「-」文字があります。ブロックが折りたたまれている場合は、折りたたまれたブロックを開く「+」文字に置き換えられます。

Ctrl+ Shift+ Alt+ ])は引き続きすべてのブロックに影響し、1つのレベルを閉じます。繰り返し使用するたびに、もう1つのレベルが閉じました。(Ctrl+ Shift+ Alt+ [)は逆の方法で機能します。

やった、ブロック崩壊がついに便利に機能します。


これに追加-コードの領域の周りでコメントをアウトデントする場合、コメントを使用してコード内にカスタム領域を構築し、カスタムセグメント全体を折りたたむことができます!素晴らしい機能!
Tim Cederquist 2017年

2019年7月13日現在、これは機能しません。代わりに他のキーボードショートカットはありますか?(一度に1つのレベルを折りたたむ/展開する?{
マーティン

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では、これはRHSコマンドキーでありK、コードフォールディングコマンドの左側ではありません。

それ以外の場合は、左側のコマンドキーで現在の行を削除しKます。


2

この機能はVisual Studio Code 1.17以降サポートされています。、あなたのコードブロックを折りたたむ/折るだけのような地域のタグを追加するには//#region my block name及び//#endregion活字体/ JavaScriptでコーディングます。

例:

リージョンフォールディング



0

Visual Studio Codeが処理できることを願っています。

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

現在、Visual Studio Codeはそれを無視するだけで、折りたたみません。一方、Notepad ++とPowerGUIはこれをうまく処理します。

更新:Visual Studio Codeの更新に気づきました。これは現在サポートされています!


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"
    },
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.