솔루션 탐색기에서 현재 파일 을 자동으로 따르는 옵션을 요청 하는 것이 아닙니다 . 이것은 이 질문에 대한 답변을 받았으며 행동이 싫기 때문에이 옵션을 해제했습니다.
솔루션 탐색기에서 현재 편집중인 파일로 이동하는 바로 가기 (또는 매크로 또는 ....)를 갖고 싶습니다.
답변:
SolutionExplorer.SyncWithActiveDocument
(-> 옵션 -> 환경 -> 키보드 도구)
Track Active Item in Solution Explorer
첫 번째 를 비활성화 할 수 있으므로 동기화 솔루션 탐색기는 코드 파일을 전환 할 때 "점프"하는 대신이 바로 가기를 누를 때만 발생합니다.
Visual Studio 2015, 2017 및 2019에서는 Ctrl+ [를 누른 다음 s.
현재 솔루션 탐색기에서 편집중인 파일이 강조 표시됩니다.
다음 키보드 명령을 통해 구성 할 수 있습니다. SolutionExplorer.SyncWithActiveDocument
재구성하려면 도구-> 옵션-> 환경-> 키보드로 이동하십시오.
내가 아는 한 VS 2012 이전에는 그러한 옵션이 없습니다.
VS 2012에서는 "활성 문서와 동기화"옵션이 도입되었습니다. 이 블로그 에서 설명과 화면을 찾을 수 있습니다 (페이지 중간에있는 "활성 문서와 동기화"로 스크롤).
솔루션 탐색기에서 현재 편집중인 파일을 찾으려면 :
Ctrl + W + S
이전에을 사용 Shift + Alt + L
했지만 어떤 이유로 더 이상 작동하지 않습니다.
다른 제안 ( Ctrl+\,S
및 Ctrl+[,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에서는이 확장 ( 링크 )을 사용할 수 있습니다 . 솔루션 탐색기 도구 모음 및 코드 컨텍스트 메뉴에 동기화 옵션을 추가합니다.
VS 2017의 경우 기본 구성은 다음과 같습니다.
Ctrl + [, S
여기에서 찾을 수있는 전체 단축키 목록 :
질문이 맞으면 도구-> 옵션-> 프로젝트 및 솔루션-> 일반으로 이동하여 "솔루션 탐색기에서 활성 항목 추적"옵션을 선택할 수 있습니다.