Visual Studio展开/折叠键盘快捷键
在Visual Studio中,如果我打开了一个代码文件,我可以按CTRL + M或CTRL + M + O来折叠所有代码块,区域,命名空间等。
如何做相反的事情并扩大一切?
我已经Google了这个,但似乎无法find一个工作的捷径!
折叠定义
CTRL + M , O
展开所有大纲
CTRL + M , X
展开或折叠一切
CTRL + M , L
这也适用于其他语言如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 + M和Ctrl + 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