9

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

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

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

4

2 回答 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使用或 工具打开宏资源管理器| 宏 > 宏资源管理器
  • 将 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+OCollapse to Definitions 的标准(如果您选择的话)。稍后,在使用已注释掉的#regions 提交该单元之前,只需点击Alt+Shift+/取消注释#regions,它们将被重新激活。

最后,@Serhat,再次感谢您最初的评论,这让我首先进入了这条赛道。

在实践中,我非常愿意忍受一个小问题。 //#region紧随其后的#//endregion是连续评论,评论仍然折叠,但至少那里没有隐藏代码。

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

于 2009-11-26T20:53:02.040 回答
3

我发现Ctrl+ M, Ctrl+O对于折叠所有内容非常有用。

你读过Jeff 关于区域的博文吗?他列出了一些更有用的快捷方式。

为什么要保持这些扩展,如果您不希望它折叠,您真的需要该区域吗?

于 2008-10-22T12:02:24.697 回答