折叠到定义的快捷方式,除了区域

9
在vs2008中,我如何(可能使用宏)分配一个快捷键来折叠定义但保留区域展开(如果折叠必须展开)?
编辑:我讨厌区域,但我的同事不讨厌。所以我想避免他们使用的区域。
我读了杰夫的帖子。如果没有区域,Ctrl M + O就是我真正想做的事情。
2个回答

6

我相信我终于找到了我一直在寻找的答案,而且我认为它可能也会帮助你,@Serhat。你说:

我读了杰夫的文章。如果没有区域,Ctrl M + O 就是我真正想做的。

这正是我自己在想的。我继续思考并找到了一种方法(暂时)摆脱 #regions。

这不是完整的解决方案,但我很高兴有 某些东西,以至于我快要跳起来了。我会尽量让这些说明变得简单易懂,尽管我敢说直接发布我创建的宏的实际内容可能更容易。(请参见底部链接)

我创建了两个宏:

  1. 注释掉所有 #region 和 #endregion 指令。
  2. 取消注释所有 //#region 和 //#endregion 出现。

创建第一个宏:

  • 使用 Ctrl+Shift+R 开始录制宏,并按照以下步骤操作:
  • Ctrl+H,查找: #region,替换为: //#region
  • Alt+A 替换所有
  • Ctrl+H,查找: #endregion,替换为: //#endregion
  • Alt+A 替换所有
  • 使用 Ctrl+Shift+R 结束录制宏
  • 使用 Alt+F8 或 Tools | Macros > Macro Explorer 打开宏资源管理器
  • 将 TemporaryMacro 重命名为 CommentRegionDirectives

然后,创建第二个宏:

  • 使用 Ctrl+Shift+R 开始录制宏,并按照以下步骤操作:
  • Ctrl+H,查找: //#region,替换为: #region
  • Alt+A 替换所有
  • Ctrl+H,查找: //#endregion,替换为: #endregion
  • Alt+A 替换所有
  • 使用 Ctrl+Shift+R 结束录制宏
  • 使用 Alt+F8 或 Tools | Macros > Macro Explorer 打开宏资源管理器
  • 将(这个新的)TemporaryMacro 重命名为 UncommentRegionDirectives

现在,在宏资源管理器中使用 Ctrl+S 保存您的宏。

最后,为这两个宏分配快捷键:

  • 打开工具 | 选项 | 环境+键盘
  • 在“显示包含命令:”中键入 指令。这将显示两个宏,命名为 “Macros.MyMacros.RecordingModule.CommentRegionDirectives” 和 “... UncommentRegionDirectives”
  • 突出显示 CommentRegionDirectives 条目,在“按快捷键:”框中键入 Alt+/,然后单击“分配”按钮
  • 突出显示 UncommentRegionDirectives 条目,在“按快捷键:”框中键入 Alt+Shift+/,然后单击“分配”按钮(默认情况下,这两个快捷键组合未分配给任何内容)
  • 单击“确定”以保存您的快捷键分配。

现在,当您面对自动折叠的 #region 时,按 Alt+/ 注释掉 #region 指令,并按标准的 Ctrl+M+O 进行折叠到定义(如果您选择)。 然后稍后,在提交带有注释的 #regions 的单元之前,只需按 Alt+Shift+/ 取消注释 #region,它们将被重新激活。

最后,感谢 @Serhat,再次感谢你的原始评论,首先让我知道了这个跟踪。

实际上,有一个小问题,我愿意忍受。 //#region 后面跟着 #//endregion 计为连续的注释,并且注释仍然被折叠,但至少其中没有隐藏的代码。

这是我从宏资源管理器中提取的承诺文本:http://pastebin.ca/1688618,尽管如果您手动按照我上面概述的步骤操作,则不需要它。


3
我发现使用Ctrl+MCtrl+O可以折叠所有内容,非常实用。
你读过Jeff关于区域的博客文章吗?他列出了一些更加实用的快捷键。
如果你不想折叠区域,为什么要保持它们展开呢?

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接