Visual Studio展开/折叠键盘快捷键

在Visual Studio中,如果我打开了一个代码文件,我可以按CTRL + MCTRL + M + O来折叠所有代码块,区域,命名空间等。

如何做相反的事情并扩大一切?

我已经Google了这个,但似乎无法find一个工作的捷径!

折叠定义

CTRL + MO

展开所有大纲

CTRL + MX

展开或折叠一切

CTRL + ML

这也适用于其他语言如TypeScript和JavaScript

正如你所看到的,有几种方法可以实现这一点。

我个人使用:

全部展开: CTRL + M + L

全部折叠: CTRL + M + O

奖金:

光标位置上的展开/折叠: CTRL + M + M

Visual Studio 2015:

Tools > Options > Settings > Environment > Keyboard 

默认值:

Edit.CollapsetoDefinitions: CTRL + M + O

Edit.CollapseCurrentRegion: CTRL + M + CTRL + S

Edit.ExpandAllOutlining: CTRL + M + CTRL + X

Edit.ExpandCurrentRegion: CTRL + M + CTRL + E

我喜欢设置和使用IntelliJ的快捷键:

Edit.CollapsetoDefinitions: CTRL + SHIFT + NUM-

Edit.CollapseCurrentRegion: CTRL + NUM-

Edit.ExpandAllOutlining: CTRL + SHIFT + NUM +

Edit.ExpandCurrentRegion: CTRL + NUM +

您可以使用Ctrl + MCtrl + P

这就是所谓的Edit.StopOutlining

对于崩溃,您可以尝试CTRL + M + O并使用CTRL + M + P 。 这在VS2008中工作。

进入工具 – >选项 – >文本编辑器 – > c# – >高级,并取消选中第一个checkbox打开文件时进入大纲模式。

这将永远解决这个问题

我一直希望Visual Studio包含一个选项,以便折叠/展开区域。 我有下面的macros,这将做到这一点。

 Imports EnvDTE Imports System.Diagnostics ' Macros for improving keyboard support for "#region ... #endregion" Public Module CollapseExpandRegions ' Expands all regions in the current document Sub ExpandAllRegions() Dim objSelection As TextSelection ' Our selection object DTE.SuppressUI = True ' Disable UI while we do this objSelection = DTE.ActiveDocument.Selection() ' Hook up to the ActiveDocument's selection objSelection.StartOfDocument() ' Shoot to the start of the document ' Loop through the document finding all instances of #region. This action has the side benefit ' of actually zooming us to the text in question when it is found and ALSO expanding it since it ' is an outline. Do While objSelection.FindText("#region", vsFindOptions.vsFindOptionsMatchInHiddenText) ' This next command would be what we would normally do *IF* the find operation didn't do it for us. 'DTE.ExecuteCommand("Edit.ToggleOutliningExpansion") Loop objSelection.StartOfDocument() ' Shoot us back to the start of the document DTE.SuppressUI = False ' Reenable the UI objSelection = Nothing ' Release our object End Sub ' Collapses all regions in the current document Sub CollapseAllRegions() Dim objSelection As TextSelection ' Our selection object ExpandAllRegions() ' Force the expansion of all regions DTE.SuppressUI = True ' Disable UI while we do this objSelection = DTE.ActiveDocument.Selection() ' Hook up to the ActiveDocument's selection objSelection.EndOfDocument() ' Shoot to the end of the document ' Find the first occurence of #region from the end of the document to the start of the document. Note: ' Note: Once a #region is "collapsed" .FindText only sees it's "textual descriptor" unless ' vsFindOptions.vsFindOptionsMatchInHiddenText is specified. So when a #region "My Class" is collapsed, ' .FindText would subsequently see the text 'My Class' instead of '#region "My Class"' for the subsequent ' passes and skip any regions already collapsed. Do While (objSelection.FindText("#region", vsFindOptions.vsFindOptionsBackwards)) DTE.ExecuteCommand("Edit.ToggleOutliningExpansion") ' Collapse this #region 'objSelection.EndOfDocument() ' Shoot back to the end of the document for ' another pass. Loop objSelection.StartOfDocument() ' All done, head back to the start of the doc DTE.SuppressUI = False ' Reenable the UI objSelection = Nothing ' Release our object End Sub End Module