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

时间:2012-12-27 08:25:21

标签: visual-studio visual-studio-2012 keyboard-shortcuts

在Visual Studio中,如果我打开了代码文件,我可以按 CTRL + M CTRL + M < / kbd> + O 折叠所有代码块,区域,名称空间等。

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

我用Google搜索了这个,但似乎无法找到有效的快捷方式!

7 个答案:

答案 0 :(得分:301)

折叠到定义

CTRL + M O

展开所有大纲

CTRL + M X

展开或折叠所有内容

CTRL + M L

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

答案 1 :(得分:119)

如您所见,有几种方法可以实现这一目标。

我个人使用:

展开全部: CTRL + M + L

折叠全部: CTRL + M + O

加成:

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

答案 2 :(得分:26)

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 +

答案 3 :(得分:22)

您可以使用 Ctrl + M Ctrl + P

它叫做Edit.StopOutlining

答案 4 :(得分:8)

对于崩溃,您可以尝试 CTRL + M + O 并使用 CTRL + 展开M + P 。这适用于VS2008。

答案 5 :(得分:8)

转到工具 - &gt;选项 - &gt;文本编辑器 - &gt; c# - &gt;高级并取消选中第一个复选框在文件打开时输入大纲模式。

这将永远解决这个问题

答案 6 :(得分:4)

我一直希望Visual Studio包含一个折叠/扩展区域的选项。我有以下宏可以做到这一点。

 
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

编辑:现在有一个名为Edit.ToggleOutliningExpansion的快捷方式(Ctrl + M,Ctrl + M)来做这件事。