[visual-studio] Visual Studio : 솔루션 탐색기를 현재 파일로 스크롤하는 바로 가기

솔루션 탐색기에서 현재 파일 을 자동으로 따르는 옵션을 요청 하는 것이 아닙니다 . 이것은 이 질문에 대한 답변을 받았으며 행동이 싫기 때문에이 옵션을 해제했습니다.

솔루션 탐색기에서 현재 편집중인 파일로 이동하는 바로 가기 (또는 매크로 또는 ….)를 갖고 싶습니다.



답변

VS 2013에는 기본 제공 키보드 바로 가기 (CTRL + \, S)가 있습니다.

  1. Ctrl + 백 슬래시를 누릅니다.
  2. 두 키를 모두 놓으십시오.
  3. S 키 누르기

또는 아래 이미지에서 강조 표시된 버튼을 클릭하십시오.

활성 문서와 동기화

기본 조합이 마음에 들지 않으면 키보드 단축키사용자 지정할 수도 있습니다. 🙂


답변

Visual Studio 2015, 2017 및 2019에서는 Ctrl+ [를 누른 다음 s.

현재 솔루션 탐색기에서 편집중인 파일이 강조 표시됩니다.

다음 키보드 명령을 통해 구성 할 수 있습니다. SolutionExplorer.SyncWithActiveDocument

재구성하려면 도구-> 옵션-> 환경-> 키보드로 이동하십시오.


답변

내가 아는 한 VS 2012 이전에는 그러한 옵션이 없습니다.

VS 2012에서는 “활성 문서와 동기화”옵션이 도입되었습니다. 이 블로그 에서 설명과 화면을 찾을 수 있습니다 (페이지 중간에있는 “활성 문서와 동기화”로 스크롤).


답변

솔루션 탐색기에서 현재 편집중인 파일을 찾으려면 :

Ctrl + W + S

이전에을 사용 Shift + Alt + L했지만 어떤 이유로 더 이상 작동하지 않습니다.

다른 제안 ( Ctrl+\,SCtrl+[,S및 Ctrl +`+ S)은 VS2015에서 작동하지 않습니다. 나는 resharper를 사용하지 않으며 간단한 단축키를 사용할 수있을 때 매크로를 사용하는 것을 좋아하지 않습니다.


답변

Visual Studio 2015에서 ReSharper 를 사용하면 Shift+ Alt+ L를 눌러 솔루션 탐색기에서 편집중인 현재 파일을 강조 표시 할 수 있습니다.


답변

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

여기에 원본 소스


답변

Visual Studio 2010/2012에서는이 확장 ( 링크 )을 사용할 수 있습니다 . 솔루션 탐색기 도구 모음 및 코드 컨텍스트 메뉴에 동기화 옵션을 추가합니다.