Visual Studio:将解决方案资源管理器滚动到当前文件的快捷方式

时间:2013-02-18 13:18:07

标签: visual-studio

没有要求选择自动关注解决方案资源管理器中的当前文件。这已在this question中得到解答,我已关闭此选项,因为我讨厌这种行为。

我想有一个快捷方式(或宏,或....)跳转到我正在解决方案资源管理器中编辑的文件。

10 个答案:

答案 0 :(得分:88)

在VS 2013中,有一个内置键盘快捷键(CTRL + \,S)

  1. 按CTRL +反斜杠
  2. 释放两个键
  3. 按S键
  4. 或点击图像下方突出显示的按钮。

    Sync with active document

    如果您不喜欢默认组合,还可以选择customize the keyboard shortcut:)

答案 1 :(得分:56)

在Visual Studio 2015,2017和2019中,您可以按 Ctrl + [然后 s

这将突出显示当前正在解决方案资源管理器中编辑的文件。

答案 2 :(得分:27)

据我所知,在VS 2012之前没有这样的选择。

在VS 2012中,引入了“与活动文档同步”选项。您可以在this blog上找到说明和屏幕(在页面中间滚动到“与活动文档同步”)。

答案 3 :(得分:6)

要在解决方案资源管理器中找到您当前正在编辑的文件:

<强> </tr>

我之前使用的是Ctrl + W + S,但出于某种原因,这已经不再适用了。

其他建议( Shift + Alt + L Ctrl+\,S 和Ctrl +`+ S)在VS2015中对我不起作用。我没有使用resharper,也不喜欢在有简单的快捷方式时使用宏。

答案 4 :(得分:4)

在Visual Studio 2015中,使用ReSharper,我可以按 Shift + Alt + L 突出显示当前正在编辑的文件解决方案资源管理器。

答案 5 :(得分:3)

对于VS2010,我发现这个宏对我有用:

Imports System
Imports EnvDTE
Imports EnvDTE80
Imports EnvDTE90

Public Module Utilities
    Public Sub TrackProjectItem()
        Dim solution As Solution2 = DTE.Solution
        If Not solution.IsOpen OrElse DTE.ActiveDocument Is Nothing Then Return

        solution.FindProjectItem(DTE.ActiveDocument.FullName).ExpandView()

        Dim FileName As String = DTE.ActiveDocument.FullName

        Dim SolutionExplorerPath As String
        Dim items As EnvDTE.UIHierarchyItems = DTE.ToolWindows.SolutionExplorer.UIHierarchyItems
        Dim item As Object = FindItem(items, FileName, SolutionExplorerPath)

        If item Is Nothing Then
            MsgBox("Couldn't find the item in Solution Explorer.")
            Return
        End If

        DTE.Windows.Item(Constants.vsWindowKindSolutionExplorer).Activate()
        DTE.ActiveWindow.Object.GetItem(SolutionExplorerPath).Select(vsUISelectionType.vsUISelectionTypeSelect)
    End Sub

    Public Function FindItem(ByVal Children As UIHierarchyItems, ByVal FileName As String, ByRef SolutionExplorerPath As String) As Object
        For Each CurrentItem As UIHierarchyItem In Children
            Dim TypeName As String = Microsoft.VisualBasic.Information.TypeName(CurrentItem.Object)
            If TypeName = "ProjectItem" Then
                Dim projectitem As EnvDTE.ProjectItem = CType(CurrentItem.Object, EnvDTE.ProjectItem)
                Dim i As Integer = 1
                While i <= projectitem.FileCount
                    If projectitem.FileNames(i) = FileName Then
                        SolutionExplorerPath = CurrentItem.Name
                        Return CurrentItem
                    End If
                    i = i + 1
                End While
            End If

            Dim ChildItem As UIHierarchyItem = FindItem(CurrentItem.UIHierarchyItems, FileName, SolutionExplorerPath)
            If Not ChildItem Is Nothing Then
                SolutionExplorerPath = CurrentItem.Name + "\" + SolutionExplorerPath
                Return ChildItem
            End If
        Next
    End Function
End Module

原始来源here

答案 6 :(得分:3)

在Visual Studio 2010/2012中,您可以使用此扩展程序(link)。 它在Solution Explorer工具栏和代码上下文菜单上添加了同步选项。

答案 7 :(得分:0)

在我的键盘上,我不得不按:

Ctrl + ` + S

请注意,中间的符号是退格键左侧的键。

使用Visual Studio 2015。

答案 8 :(得分:0)

如果我的问题正确,您可以转到工具 - &gt;选项 - &gt;项目和解决方案 - &gt;常规并选中“在解决方案资源管理器中跟踪活动项目”选项。

答案 9 :(得分:0)

对于VS 2017,默认配置为:

  

CTRL + [,S

以及您可以在此处找到的快捷方式的完整列表:

http://visualstudioshortcuts.com/2017/