如何在 VS Code 中隐藏任意代码段?

Posted

技术标签:

【中文标题】如何在 VS Code 中隐藏任意代码段?【英文标题】:How do you hide arbitrary section of code in VS Code? 【发布时间】:2017-10-19 00:33:38 【问题描述】:

我所说的“VS Code”是指轻量级文本编辑器而不是单片 IDE,不幸的是,在 google 上搜索此内容会发现许多关于如何在 Visual Studio 中执行此操作的不相关信息。

对于问题本身,任何人都知道如何在“Visual Studio Code”中隐藏任意选定的代码行,最好像折叠一样隐藏成加号?

注意: 这与折叠嵌套代码不同,这可能可以通过 Ctrl+K,Ctrl+<num> 实现,我需要在这里隐藏选择的特定代码块,不管是否嵌套。

编辑:我看到有些人不理解我的要求。

例如,你可能认为我想要的是这样的:

隐藏前:

for i in j:
    for k in i:
        for l in k:
            somestuff...

隐藏后:

[+] for i in j: ...

我真正想要的是:

隐藏前:

# doing stuff about a
a = ClassA()
a.bar()
a.i = 2
a.j = 3
a.k = 5

隐藏后:

[+] ...  ( doing stuff about a )

2017.10.17 编辑: 事实证明 VS Code 在 VS Code 1.17.1 更新中实现了一个非常相似的功能,称为“折叠区域”。 link

【问题讨论】:

【参考方案1】:

您可以使用以下分隔符进行代码折叠:

C/C++:       #pragma region and #pragma endregion
C#:          #region and #endregion
CSS:         /* #region */ and /* #endregion */
Java:        //region and //endregion
javascript:  //#region and //#endregion and //region and //endregion
php:         #region and #endregion
Powershell:  #region and #endregion
Python:      #region and #endregion
VB:          #Region and #End Region

见https://github.com/Microsoft/vscode/issues/12146([折叠]折叠区域)

【讨论】:

【参考方案2】:

不幸的是,VSCode 目前似乎不允许您像 Visual Studio 那样通过 Ctrl+M,Ctrl+H。现在您可以使用代码折叠功能,这取决于缩进。也就是说,如果你缩进你想隐藏的代码,你可以通过 Ctrl+Shift+[ 折叠它,像这样:

显然,这对您的问题来说是一种丑陋的解决方案;它需要多个步骤并对文件进行实际更改。此外,如果您使用 Python 等依赖空格的语言进行编写,这显然是没有用的,但我认为您不会找到更好的解决方案,而不是找到扩展(或自己编写)。如果此功能对您很重要,也可能值得在 the official VSCode GitHub repo 上发布问题。

【讨论】:

回想起来,你的回答很有创意,而且在那一刻几乎是正确的,很抱歉我没有选择你,因为这可能不适用于某些缩进敏感的语言。 @Sajuuk 不用担心,我承认这是答案的一部分。理想情况下,它应该是 vscode 自己做的事情。 现在剖析一些 C 代码,并试图隐藏代码块,而不仅仅是折叠它。由于某种原因,缩进技巧不起作用,但我在我想隐藏的块周围添加了 #if 1#endif 并完成了它:)谢谢你的想法!【参考方案3】:

使用缩进减少的分隔符进行注释。 隐藏然后像嵌套一样工作,左边的小箭头。

see here

# Below here comes the code to hide.
    a = ClassA()
    a.bar()
    a.i = 2
    a.j = 3
    a.k = 5

【讨论】:

以上是关于如何在 VS Code 中隐藏任意代码段?的主要内容,如果未能解决你的问题,请参考以下文章

在VS Code Explorer中导航

在 Visual Studio Code (VS Code) 中将一段代码注释掉的两种方法

VS.NET 2005(C#) 如何注释

如何在 VS Code 中配置 terraform 代码的对齐和缩进?

如何在 Visual Studio Code 中隐藏缩进指南?

在 VS Code 中调试时如何跳过外部代码