【问题标题】:Collapse all #regions only(!) in C# (Visual Studio)在 C# (Visual Studio) 中仅折叠所有 #regions (!)
【发布时间】:2015-08-17 16:41:17
【问题描述】:

有许多键盘快捷键和菜单命令可以自动展开或折叠当前文档中的所有可折叠文件。 Ctrl+M, Ctrl+L 递归切换所有可折叠对象,从顶部命名空间到内部方法和 cmets。基本上所有在左边距有 [+] 图标的东西。 Ctrl+M, Ctrl+O 做的少了一点,但还是涉及到类里面的方法和cmets .

我正在寻找一个专门关注#region foldables 的功能,仅此而已。不是命名空间、类、cmets 或方法。我真的只想折叠那些用#region 关键字明确标记的区域。

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

我更喜欢 Visual Studio 2015(目前为 RC)的键盘解决方案。

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


更新:

2020年解决方案

由于这个问题已经收到很多答案,其中一些没用,另一些已经过时,Visual Studio 2019 的工作解决方案可以在这个被低估的答案中找到:https://stackoverflow.com/a/58999093/143684

【问题讨论】:

  • 我不这么认为(尽管可以更正)。您是否尝试过班级视图 - 它会显示所有班级成员(不是文本编辑器顶部的下拉菜单),您可以双击跳转到所选成员。
  • 我觉得没有这个,Ctrl+M,Ctrl+O最接近
  • “类视图”窗口包含一个平面列表中的所有项目,根本没有“区域化”。这不是我使用区域的目的。我需要按主题快速查找成员的区域,尤其是在具有少量相似方法的长类中,每种方法针对不同的模型类型。区域在此处按模型类型对其进行分组。

标签: c# visual-studio visual-studio-2015 code-editor


【解决方案1】:

在 Visual Studio 2017 中,我必须在

中激活 “折叠到定义时折叠 #regions”

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

Ctrl+M+O

时显式折叠所有

【讨论】:

  • 不幸的是,这也会折叠其他所有内容(几乎),而不仅仅是区域。所以这不是我要找的。 VS 2017 的 Quick Launch Tasks 扩展仍然存在,现在可以单独安装,请参阅我的其他评论。
  • 这可能不是 OP 要求的,但它正是我想要的。
  • 当前版本中的选项是“折叠到定义时折叠#regions”,它位于工具 > 选项 > 文本编辑器 > C# > 高级中。这也是我一直在寻找的。这使得 Ctrl+M+O 像在 VS 2015 中一样工作
【解决方案2】:

Ctrl+M+O 将全部折叠。

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

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

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

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

在编辑器中单击鼠标右键 -> 大纲以查找所有选项。 (禁用大纲后,使用相同的步骤启用大纲。)

【讨论】:

  • 这确实是唯一正确的答案... CTRL+(M 然后 O/L)将仅展开/折叠页面上直接回答原始问题的区域。
  • VS2017RC 不再适用。全部折叠不会折叠区域。 (至少当前版本:15.0.2620.0)
  • 对于 VS 2017,请参阅下面@Myz 的答案。
【解决方案3】:

折叠区域:工具 > 选项 > 文本编辑器 > C# > 高级 > 选中“折叠到定义时折叠#regions”

【讨论】:

  • 哦,我们在 3 年前就已经有了。查看最上面的答案。
【解决方案4】:

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

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

【讨论】:

  • 这里是 Visual Studio 2017 的相应扩展:Quick Launch Tasks
  • 不再适用于 Visual Studio 2019,因为它们改变了快速任务搜索的工作方式。
【解决方案5】:

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

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

我在市场上找到了一个不同的解决方案,它使用键盘快捷键完全折叠和扩展当前打开的文件中的所有区域:Collapse Region

来自扩展页面:

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

【讨论】:

  • 感谢您提供这么棒的信息!由于我没有在其他方面使用快速任务,因此我可能会切换到该扩展程序。经过测试并且可以工作(在 VS 2017 和 2019 中)。
【解决方案6】:

勾选 Settings -> TextEditor -> C# -> Advanced -> (section Outlining) 折叠定义时折叠 #regions。

然后在编辑器中右键单击>大纲>折叠到定义

【讨论】:

    【解决方案7】:

    我不知道这是不是新的,但是c#文本编辑器有一个设置:

    设置 -> 文本编辑器 -> C# -> 高级 -> 折叠定义时折叠#regions。

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

    【讨论】:

      【解决方案8】:

      看起来最接近的是Ctrl+MCtrl+S

      哪个会折叠你所在的当前区域,而Ctrl+MCtrl+E会展开您所在的当前区域。

      默认键盘快捷键列表:

      https://msdn.microsoft.com/en-us/library/da5kh0wa(v=vs.140).aspx

      【讨论】:

        【解决方案9】:

        我建议使用免费的 Visual Studio 扩展“Meenees VS Tools Extension for Visual Studio”。只需在 Visual Studio 中的 Tools --> Extensions and Updates 中搜索它。安装后,您只需点击 Ctrl+M+K 即可折叠区域。这是他们的网站https://marketplace.visualstudio.com/items?itemName=BillMenees.MeneesVSTools2013

        要编辑设置,请查看工具 --> 选项 --> Menees VS 工具 --> 常规。

        【讨论】:

          【解决方案10】:

          对于 Visual Studio 2022,以下是运行良好的工具:

          https://marketplace.visualstudio.com/items?itemName=EngineDesigns.CollapseAllRegions

          CTRL-M CTRL-R

          折叠所有#region 组。

          【讨论】:

          • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review
          • 同意你的看法。 OP 提出的这个问题 - 我提供了答案,因为我和 OP 和其他人有同样的问题。我还注意到许多答案不能满足我们的需求。这位编写此工具的引擎设计作者已经解决了我们正在寻找的问题 - 目前。 :)
          【解决方案11】:

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

          i.e. 按住 Ctrl 的同时按两次 M

          【讨论】:

          • 对不起,没有。这会折叠一切,包括命名空间、类、方法和 cmets。这不是明确要求的。
          • 在 Visual Studio 中对于 javascript 区域折叠 Ctrl+M+O 不起作用但选择所有项目然后 Ctrl+M+M 起作用,谢谢
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-03-10
          • 2010-11-20
          • 2017-07-28
          相关资源
          最近更新 更多