在 vs2008 中,我如何(可能使用宏)指定一个快捷键来折叠到定义,但使区域保持展开(如果折叠,它们必须展开)?

编辑: 我讨厌地区,但我的同事不喜欢(:所以我希望这样可以避开他们使用的区域。

我读了杰夫的帖子。如果没有区域的话,Ctrl M + O 是我真正想做的。

有帮助吗?

解决方案

我相信我有 最后 得到了我一直在寻找的答案,我认为它也可能对你有帮助,@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 或工具|宏>宏观资源管理器
  • 将 TemporaryMacro 重命名为 CommentRegionDirectives

然后,创建第二个宏:

  • 开始录制宏 Ctrl+Shift+R, ,并按照以下步骤操作:
  • Ctrl+H, , 找什么: //#region, , 用。。。来代替: #region
  • Alt+A 全部替换
  • Ctrl+H, , 找什么: //#endregion, , 用。。。来代替: #endregion
  • Alt+A 全部替换
  • 结束录制宏 Ctrl+Shift+R
  • 打开宏资源管理器 Alt+F8 或工具|宏>宏观资源管理器
  • 将(这个新的)TemporaryMacro 重命名为 UncommentRegionDirectives

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

最后,为两个宏指定快捷键:

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

现在,当您面临自动折叠的#regions时,请点击 Alt+/ 注释掉 #region 指令,并达到标准 Ctrl+M+O 折叠到定义(如果您选择的话)。然后,在使用注释掉的 #regions 提交该单元之前,只需点击 Alt+Shift+/ 取消注释#regions,它们将被重新激活。

最后,@Serhat,再次感谢您最初的评论,正是它让我首先踏上了这条轨道。

在实践中,有一个小问题我很愿意忍受。 //#region 其次是 #//endregion 算作连续的注释,注释仍然折叠,但至少没有隐藏其中的代码。

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

其他提示

我发现 Ctrl + M Ctrl + O 对于折叠一切非常有用。

您是否阅读了 Jeff关于地区的博客文章?他列出了一些更有用的快捷方式。

为什么你要保持这些扩展,如果你不想让它崩溃,你真的需要这个区域吗?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top