如何在Visual Studio 2019专业版中设置单个按键(F1)实现当前代码块折叠与展开的切换
解决VS2019专业版用F1一键切换代码块折叠/展开的问题
我前阵子也碰到过一模一样的情况——直接绑定Edit.CollapseCurrentRegion和Edit.ExpandCurrentRegion确实会互相覆盖,而且VS默认确实没有现成的Edit.ToggleCurrentRegion命令。不过有两个靠谱的办法能实现你要的效果:
方法一:用VS自带的隐藏命令(最简单)
其实VS有个内置命令Edit.ToggleOutliningExpansion,它的功能就是切换当前光标所在代码块的折叠/展开状态,和你想要的ToggleCurrentRegion效果完全一致。设置步骤如下:
- 打开
工具->选项->环境->键盘 - 在
显示命令包含输入框里,直接输入Edit.ToggleOutliningExpansion - 在
按快捷键输入框里按下F1,点击分配,再点确定就搞定了
方法二:自定义宏(更灵活,适合特殊需求)
如果上面的命令不符合你的预期(比如你需要严格针对#region块而不是所有代码块),可以用宏来实现精准控制:
- 首先安装微软官方的
Microsoft Visual Studio Macros for Visual Studio 2019扩展(在VS的扩展市场里搜索就能找到) - 安装完成后,打开
工具->宏->宏管理器,新建一个宏模块(比如命名为CodeTools) - 在模块中粘贴以下VBA代码:
Sub ToggleCurrentCodeRegion() Dim currentSel As TextSelection = DTE.ActiveDocument.Selection ' 先尝试折叠当前区域 DTE.ExecuteCommand("Edit.CollapseCurrentRegion") ' 判断是否折叠成功:如果折叠后选区为空,说明之前已经是折叠状态,需要展开 If currentSel.IsEmpty Then DTE.ExecuteCommand("Edit.ExpandCurrentRegion") End If End Sub
- 保存宏后,回到键盘快捷键设置,在
显示命令包含里输入你的宏名称(比如CodeTools.ToggleCurrentCodeRegion),绑定F1即可
亲测这两个方法在VS2019专业版里都能正常工作,你可以根据自己的需求选择~
内容的提问来源于stack exchange,提问作者o0'.
相关产品推荐
相关产品推荐

