如何折叠Visual Studio Code for Windows中的代码段?

如何在Visual Studio Code中折叠或折叠代码段?

是否支持此功能?

745141 次浏览

折叠已经推出,现在从Visual Studio Code版本0.10.11开始实现。有以下键盘快捷键可用:

  • 折叠在光标处折叠最内层的未折叠区域:

    • Ctrl+Shift+[在Windows和Linux
    • ++[在macOS上
  • 展开在光标处展开折叠区域:

    • Ctrl+Shift+]在Windows和Linux
    • ++]在macOS上
  • 折叠所有折叠编辑器中的所有区域:

    • Ctrl+KCtrl+(零)在Windows和Linux
    • +K+(零)
  • 展开所有展开编辑器中的所有区域:

    • Ctrl+KCtrl+J在Windows和Linux
    • +K+J在macOS上

参考文献:https://code.visualstudio.com/docs/getstarted/keybindings

折叠/扩展的默认快捷方式是:

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"},

现在在版本1.0中支持折叠:

源代码折叠快捷方式

有新的折叠操作来折叠源代码区域,基于#36825;的水平

有一些操作可以将级别1(Ctrl+KCtrl+1)折叠到级别5(Ctrl+KCtrl+5)。要展开,请使用全部展开(Ctrl+Shift+Alt+])。

级别折叠操作不适用于包含

全部折叠:+K+(零)

折叠层级[n]:CTRL+KCTRL+[n]*

全部展开:CTRL+KCTRL+J

折叠区域:CTRL+KCTRL+[

展开区域:CTRL+KCTRL+]

*折叠级别:要折叠除最外层类之外的所有类,请尝试CTRL+KCTRL+1

Mac:使用而不是CTRL(感谢Prajeet)

从版本1.3.1(2016-07-17)开始,Block Collapse更加方便。

任何后跟缩进行的行都将有一个'-'字符来允许折叠。如果块折叠,它将被一个'+'字符替换,该字符将打开折叠的块。

Ctrl+Shift+Alt+])仍然会影响所有方块,关闭一个级别。每次重复使用都会关闭一个级别。(Ctrl+Shift+Alt+[)以相反的方式工作。

万岁,块倒塌终于有用了。

此功能现已在标准构建中可用。要显示折叠/展开控件,您需要将鼠标悬停在行号右侧的区域上,如下图所示:

在此处输入图片描述

在Mac上,它是RHS命令键,K,而不是代码折叠命令的左侧。

否则,左手命令键将删除当前行K

有关命令和演示,请参阅

Create Manual Folding Range from Selection
editor.createFoldingRangeFromSelection

这是绑定到上面的创建命令:Ctrl+KCtrl+,

Remove Manual Folding Ranges
editor.removeManualFoldingRanges

这是绑定到上面的删除命令:Ctrl+KCtrl+.


代码折叠由地区已经到达v1.17。按区域折叠留档。以及v1.191.23

[通常你可以添加一个空格,例如// region and // endregion//region and //endregion,它也可以工作。

TypeScript/JavaScript: //#region and //#endregion or // #region and // #endregionC#:                    #region and #endregionC/C++:                 #pragma region and #pragma endregionF#:                    //#region and //#endregionPowerShell:            #region and #endregionPython:                #region and #endregionVB:                    #Region and #End RegionPHP:                   #region and #endregionBat:                   ::#region and ::#endregion or REM #region and REM #endregionMarkdown:              <!-- #region --> and <!-- #endregion -->Golang                 //region and //endregion or //#region and //#endregionJava                   //#region and //#endregionCSS/SCSS/Less:         /* #region */ and /* #endregion */ or /*#region*/ and /*#endregion*/SCSS/Less:             // #region and // #endregionGo:                    // region, // endregion and // #region, // #endregionshellscript:           # region and # endregionPerl5                  #region and #endregion or =pod and =cutsql                    --#region and --#endregion

重要提示:如果您在列表中看不到您的语言::

每种语言都有可用于标记的片段。键入“#”并调用代码完成以查看它们。要为您的语言配置区域标记,请联系语言扩展提供商。

因此,键入#,然后键入Ctrl+空间以查看任何语言的区域标记。


Visual Studio Code 1.17开始,现在支持此功能。要折叠/折叠您的代码块,只需添加区域标签,例如//#region my block name//#endregion,如果使用TypeScript/JavaScript编码。

示例:

区域折叠

使用JavaScript:

//#region REGION_NAME...code here//#endregion

您应该添加用户设置:

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

如果没有任何快捷方式正常工作(就像我一样),作为解决方法,您还可以打开命令面板(Ctrl+3或View->Command Palette…)并输入fold all

输入图片描述

我希望Visual Studio Code可以处理:

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

现在Visual Studio Code只是忽略它并且不会折叠它。与此同时,Notepad++和PowerGUI处理得很好。

更新:我刚刚注意到Visual Studio Code的更新。现在支持!

ctrl+k+:折叠所有级别(命名空间、类、方法、块)

ctrl+k+1:命名空间

ctrl+k+2:类

ctrl+k+3:方法

ctrl+k+4:块

ctrl+k+[]:当前光标块

ctrl+k+j:展开

VSCode扩展:折叠水平,一键折叠到您想要的级别。

在此处输入图片描述

编辑器内的代码折叠控件,用于在VsCode中扩展XML结构文档和源代码的节点

这里没有技术提示,只是简单调整VsCode的偏好。

我设法通过转到首选项并搜索“折叠”来始终在VsCode中显示代码折叠控件。现在只需选择始终显示这些控件。这适用于我测试的Angular 8解决方案中模板的TypeScript代码和超文本标记语言。

这是在Windows 10操作系统上运行的VsCode Insider 1.37.0进行测试的。

在VsCode中始终显示代码折叠控件

v1.42正在为折叠的外观和功能添加一些不错的改进。请参阅https://github.com/microsoft/vscode-docs/blob/vnext/release-notes/v1_42.md#folded-range-highlighting

折叠范围高亮

由于背景颜色,折叠的范围现在更容易发现对于所有折叠范围。

折叠高亮

折叠高亮颜色主题:黑暗+

该功能由设置editor.foldingHighlight和颜色可以使用背景editor.fold颜色自定义。

"workbench.color自定义":{"editor.fold背景":"#355000"}

折叠改进

折叠指示器上的Shift + Click首先只折叠内部Shift + Click(当所有内部范围都已折叠时)Shift + Click再次展开所有内容。

折叠移位点击

在已折叠的文件上使用Fold命令(kb(editor.fold))]时范围,下一个展开的父范围将被折叠。

备注:这些快捷方式仅在编辑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"},

或者,如果你想删除折叠按钮,额外的空间:

"editor.folding": false

(添加到您的settings.json文件)

这是VS代码中最常见的有用的默认键映射。您可以轻松地通过自己的键映射进行自定义。

Fold All: CTRL + 0
Unfold All: CTRL + J
Fold Region: CTRL + [
Unfold Region: CTRL + ]
Fold Level 1: CTRL+ 1
Fold Level 2: CTRL+ 2
Fold Level 3: CTRL+ 3
Fold Level 1: CTRL+ 4

只需按ctrl + shift + p,然后键入“折叠”。将显示所有关于(非)折叠的键绑定。如果ctrl k不起作用,可能是因为vim扩展覆盖了键。在这种情况下,您应该修改settings.json(按ctrl + shift + p,然后键入“设置”)与

"vim.handleKeys": {"<C-k>": false,},

在此处输入图片描述

折叠/展开当前块使用(ctrl+k)+(ctrl+l

这是用于折叠和展开代码的最新内置(默认)键盘快捷键

vscode键盘快捷键

在此处输入图片描述

Ctrl+Shift+[ Fold (collapse) regionCtrl+Shift+] Unfold (uncollapse) regionCtrl+K Ctrl+[ Fold (collapse) all subregionsCtrl+K Ctrl+] Unfold (uncollapse) all subregionsCtrl+K Ctrl+0 Fold (collapse) all regionsCtrl+K Ctrl+J Unfold (uncollapse) all

Nb:但在某些情况下,你的vs代码扩充或用户会改变键盘绑定(快捷方式)。所以最好的选择是像这样检查

  1. view->命令面板ORcntrl+转变+p
  2. 键入“折叠”。它将建议折叠和展开以及那里的快捷方式。您可以键入该快捷方式而不是命令调色板

在此处输入图片描述

eg:

折叠所有

在此处输入图片描述

全部展开

在此处输入图片描述

命令K+命令0不起作用。