仅折叠C#(Visual Studio)中的所有#regions(!)


103

有许多键盘快捷键和菜单命令可自动扩展或折叠当前文档中的所有可折叠文件夹。Ctrl+ MCtrl+ L递归地切换所有可折叠对象,从顶部命名空间到内部方法和注释。基本上所有在左边距带有[+]图标的东西。Ctrl+ MCtrl+ O少了一点,但仍然触及类内部的方法和注释。

我正在寻找一个专门涉及#region可折叠功能而没有其他功能的功能。不是名称空间,类,注释或方法。我真的只想折叠那些用#region关键字显式标记的区域。

是否有任何隐藏的快捷方式或扩展名?

我希望为Visual Studio 2015(目前为RC)提供键盘解决方案。

万一有人问为什么:我想获得文件的概述,但是当我决定查看一个区域时,立即看到所有详细信息。


更新:

2020年的解决方案

由于此问题已收到许多答案,其中一些没有用,其他已经过时,因此可以在以下未得到充分理解的答案中找到Visual Studio 2019的工作解决方案:https//stackoverflow.com/a/58999093/143684


我不这么认为(不过有待纠正)。您是否尝试过班级视图-它会显示所有班级成员(而不是文本编辑器顶部的下拉菜单),您可以双击以跳到所选成员。
amcdermott

1
我认为没有这样的东西,Ctrl + M,Ctrl + O是最接近的
voytek

“类视图”窗口将所有项目包含在一个平面列表中,而不是完全“区域化”的。那不是我在使用区域。我需要区域以按主题快速找到成员,尤其是在长类中,每种类针对不同的模型类型使用少量的相似方法。区域在这里按模型类型对它们进行分组。
ygoe 2015年

Answers:


210

在Visual Studio 2017年我要激活“收起#regions崩溃到定义时,”

Tools -> Options -> Text Editor -> C# -> Advanced

当按下Ctrl+ M+ 时,将全部折叠O


8
不幸的是,这也使其他所有内容(几乎)崩溃,而不仅仅是区域崩溃。所以这不是我想要的。VS 2017的快速启动任务扩展仍然存在,可以立即单独安装,请参阅我的其他评论。
ygoe '17

20
这可能不是OP所要求的,但这是我一直在寻找的。
荷马

11
当前版本中的选项是“折叠到定义时折叠#regions”,它位于“工具”>“选项”>“文本编辑器”>“ C#”>“高级”中。这也是我一直在寻找的东西。这使得Ctrl + M + O像在VS 2015中一样工作
Matt Becker

65

Ctrl+ M+ O将全部折叠。

Ctrl+ M+ L将全部展开。(在VS 2013中-切换所有大纲)

Ctrl+ M+ P将全部展开并禁用大纲。

Ctrl+ M+ M将折叠/展开当前部分。

这些选项也在“大纲”下的上下文菜单中。

右键单击编辑器->概述以找到所有选项。(在禁用轮廓绘制之后,请使用相同的步骤来启用轮廓绘制。)


1
这实际上是唯一正确的答案... CTRL +(M依次为O / L)将仅扩展/折叠页面上直接回答原始问题的区域。
维·富勒

15
VS2017RC不再适用。合并一切不会使区域崩溃。(至少当前版本:15.0.2620.0)
弗朗索瓦

3
对于VS 2017,请参见下面@Myz的答案。
杰弗里·哈蒙

29

Microsoft 的Visual Studio扩展Productivity Power Tools 2015具有一项称为“快速启动任务”的功能,该功能可将新命令添加到“快速启动”菜单中。其中之一是CollapseRegions,它就是这样做的。

相反的命令是ExpandRegions,它扩展所有区域以快速浏览整个文件。通过按CtrlQ热键并键入Collresp,可以很快使用这些命令。Exp,然后按Enter(假设您没有其他具有相同前缀的命令)。


7
这是Visual Studio 2017的相应扩展:快速启动任务
ygoe

不再适用于Visual Studio 2019,因为它们更改了快速任务搜索的工作方式。
年表


10

折叠定义时,在设置-> TextEditor-> C#->高级->折叠#区域中打勾。

然后右键单击编辑器>概述>折叠至防御



7

我不知道这是否是新的,但是c#text edior有一个设置:

设置-> TextEditor-> C#->高级->折叠定义时折叠#region。

当其设置CtrlM CtrlO将折叠#regions。


7

我知道这是一个老问题,但这是Visual Studio 2019的更新:

@ygoe的答案中的快速任务解决方案不适用于Visual Studio 2019,因为该版本更改了快速任务栏搜索的方式。另外,它从来都不是原始问题的首选解决方案,因为您需要键入快速操作而不是使用键盘快捷键。

我发现它不完全坍塌,并与键盘快捷键的当前打开的文件各地区扩大市场不同的解决方案:收起区

从扩展页面:

默认键绑定为(Ctrl + R,Ctrl + Num +)和(Ctrl + R,Ctrl + Num-)。可以在工具->选项->环境->键盘中进行更改。


谢谢您提供的好信息!由于我没有在其他任务上使用快速任务,因此我可能只是切换到该扩展程序。经过测试和工作(在VS 2017和2019中)。
ygoe


-2

选择全部通过Ctrl A,然后Ctrl M M

按住M两次Ctrl


抱歉,没有。这会使包括名称空间,类,方法和注释在内的所有内容崩溃。明确不要求这样做。
ygoe '19
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.