繁体   English   中英

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

[英]How do I collapse sections of code in Visual Studio Code for Windows?

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

是否支持此功能?

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

  • Fold折叠光标处最里面的未折叠区域:

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

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

    • Ctrl + KCtrl + 0 (零)在 Windows 和 Linux 上
    • + K + 0 (零)在 macOS 上
  • Unfold All在编辑器中展开所有区域:

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

参考资料: https ://code.visualstudio.com/docs/getstarted/keybindings

从 2017 年 4 月的 Visual Studio Code 版本 1.12.0 开始,请参阅文档中的 基本编辑 > 折叠部分。

默认键是:

全部折叠: CTRL + KCTRL + 0 (零)

折叠级别 [n]: CTRL + K , CTRL + [n] *

展开全部: CTRL + KCTRL + J

折叠区域: CTRL + KCTRL + [

展开区域: CTRL + KCTRL + ]

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

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

另请参阅从 Insiders v1.70 开始折叠任意代码行的能力。 那就是您选择的任何行都可以折叠!

有关命令和演示,请参阅https://stackoverflow.com/a/72954133/836330

Fold Selected Lineseditor.foldSelected Ctrl + K Ctrl +


v1.17 已提供按区域折叠代码 按区域折叠文档 还有v1.191.23

[通常您可以在 //region 和 //endregion 中添加空格,例如// 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  
sql                    --#region and --#endregion

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

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

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


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

在此处输入图像描述

您应该添加用户设置:

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

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

ctrl + k + 1 :命名空间

ctrl + k + 2 :类

ctrl + k + 3 :方法

ctrl + k + 4 :块

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

ctrl + k + j :展开

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

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

如果所有快捷方式都不起作用(就像我一样),作为一种解决方法,您还可以打开命令面板( Ctrl + 3或 View -> Command Palette...)并输入fold all

在此处输入图像描述

1.0 版现在支持折叠:

源代码折叠快捷方式

有新的折叠操作可以根据折叠级别折叠源代码区域。

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

级别折叠操作不适用于包含当前光标的区域。

我在键盘上找不到]按钮(挪威布局),在我的情况下是Å按钮。 (或者从退格按钮开始,向左和向下两个按钮。)

使用 JavaScript:

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

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

例子:

区域折叠

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

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

在此处输入图像描述

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

vscode 键盘快捷键

在此处输入图像描述

Ctrl+Shift+[ Fold (collapse) region
Ctrl+Shift+] Unfold (uncollapse) region
Ctrl+K Ctrl+[ Fold (collapse) all subregions
Ctrl+K Ctrl+] Unfold (uncollapse) all subregions
Ctrl+K Ctrl+0 Fold (collapse) all regions
Ctrl+K Ctrl+J Unfold (uncollapse) all

注意:但在某些情况下,您的 vs 代码扩展或用户会更改键盘绑定(快捷方式)。 所以像这样检查的最佳选择

  1. 视图->命令面板或cntrl + shift + p
  2. 键入“折叠”。它会建议折叠和展开以及快捷方式。 您可以键入该快捷方式而不是命令面板

在此处输入图像描述

例如:

全部折叠

在此处输入图像描述

展开全部

在此处输入图像描述

v1.42 对折叠的外观和功能进行了一些很好的改进。 请参阅https://github.com/microsoft/vscode-docs/blob/vnext/release-notes/v1_42.md#folded-range-highlighting

折叠范围突出显示

由于所有弃牌范围的背景颜色,现在更容易发现弃牌范围。

折叠高光

折叠高亮颜色主题:Dark+

该功能由设置 editor.foldingHighlight 控制,并且可以使用颜色 editor.foldBackground 自定义颜色。

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

折叠改进

Shift + Click折叠指示器首先只折叠内部范围。 Shift + Click再次(当所有内部范围都已折叠时)也将折叠父级。 Shift + Click再次展开全部。

折叠移位点击

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

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

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

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

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

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

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

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

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

万岁,块崩溃终于有用了。

这是 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

VSCode 扩展: Fold Level ,一键折叠到你想要的关卡。

在此处输入图像描述

注意:这些快捷方式只有在您编辑 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"
    },

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

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

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

我希望 Visual Studio Code 可以处理:

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

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

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

或者,如果您想移除折叠按钮,以获得额外空间:

"editor.folding": false

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

在Windows构建中,快捷方式设置为Alt + 0

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

此处提供更多信息: 区域扩展https://marketplace.visualstudio.com/items?itemName=maptz.regionfolder

安装扩展并使用 python 后,它的工作原理如下:

# region ARBITRARY_REGION_NAME

   code goes here...

# endregion

此外,选择所需区域,使用 Ctrl+M+Ctrl+R。

(即:先按住Ctrl,再按m,让go m,再按r,让go全部)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM