代码之家  ›  专栏  ›  技术社区  ›  Serhat Ozgel

折叠到定义(区域除外)的快捷方式

  •  9
  • Serhat Ozgel  · 技术社区  · 16 年前

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

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

    我读了杰夫的帖子。如果没有区域,ctrl m+o是我真正想做的。

    2 回复  |  直到 6 年前
        1
  •  6
  •   JMD    15 年前

    我相信我有 最后 得到了我一直在寻找的答案,我想它也会对你有所帮助,@serhat。你说:

    我读了杰夫的帖子。如果没有区域,ctrl m+o是我真正想做的。

    那是 确切地 我对自己的想法。我继续这一思路,努力(暂时)摆脱这些地区。

    这不是一个完整的解决方案,但我很高兴 某物 我快要跳上跳下了。我会尽量简化这些说明,尽管我敢说,发布我创建的宏的实际内容可能会更容易。(参见底部的链接)

    我创建了两个宏:

    1. 注释掉所有区域和结束区域指令。
    2. 取消对所有//区域和//结束区域的注释。

    创建第一个宏:

    • 开始录制宏 Ctrl+Shift+R ,并执行以下步骤:
    • Ctrl+H 找到什么: #region 替换为: //#region
    • Alt+A 替换所有
    • CTRL+H 找到什么: #endregion 替换为: //#endregion
    • ALT+A 替换所有
    • 结束录制宏 CTRL+Shift +R
    • 使用打开宏资源管理器 Alt+F8 或工具宏gt;宏资源管理器
    • 将TemporaryMacro重命名为CommentRegionDirective

    然后,创建第二个宏:

    • 开始录制宏 CTRL+Shift +R ,并执行以下步骤:
    • CTRL+H 找到什么: //γ区 替换为: γ区
    • ALT+A 替换所有
    • CTRL+H 找到什么: / /μ端区 替换为: γ端区
    • ALT+A 替换所有
    • 结束录制宏 CTRL+Shift +R
    • 使用打开宏资源管理器 ALT+F8 或工具宏gt;宏资源管理器
    • 将(此新)TemporaryMacro重命名为UncommentRegionDirections

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

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

    • 打开工具选项环境+键盘
    • 在“show commands containing:”中键入 Directives . 这将显示两个名为“macros.mymacros.recordingmodule.commentRegionDirectives”和“…uncommentRegionDirectives”的宏。
    • 突出显示CommentRegionDirectives条目,并在“Press shortcut keys:”框类型中 Alt+/ 然后单击 Assign 按钮
    • 突出显示UncommentRegionDirectives条目,并在“按下快捷键:”框类型中 Alt+Shift+/ 然后单击 赋值 按钮(默认情况下,这两个快捷方式组合不会分配给任何内容)
    • 单击“确定”保存快捷方式分配。

    现在,当你面对自动折叠的区域时,点击 ALT+/ 注释掉区域指令,并达到标准 Ctrl+M+O 用于折叠到定义(如果选择)。然后,在提交带有注释掉的区域的单元之前,只需点击 ALT+Shift + 取消对区域的注释,这些区域将被重新激活。

    最后,@serhat,再次感谢您最初的评论,这让我第一次踏上了这条赛道。

    在实践中,有一个小问题我很愿意忍受。 //γ区 然后 #//endregion 计为连续注释,注释仍然折叠,但至少其中没有隐藏的代码。

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

        2
  •  3
  •   Cœur N0mi    6 年前

    我发现 Ctrl键 + , Ctrl键 + o 是非常有用的崩溃一切。

    你读过吗? Jeff's blog post about regions ?他列出了一些更有用的快捷方式。

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