Visual Studio: skrót do przewijania eksploratora rozwiązań do bieżącego pliku

82

Nie pytam o opcję automatycznego śledzenia bieżącego pliku w eksploratorze rozwiązań. Odpowiedź została udzielona w tym pytaniu i mam tę opcję wyłączoną, ponieważ nienawidzę tego zachowania.

Chciałbym mieć skrót (lub makro lub ...), aby przejść do pliku, który obecnie edytuję w eksploratorze rozwiązań.

Laoujin
źródło
Możliwy zduplikowany stackoverflow.com/a/55025095/661584 ?
MemeDeveloper

Odpowiedzi:

107

W VS 2013 jest wbudowany skrót klawiaturowy (CTRL + \, S)

  1. Naciśnij klawisze CTRL + ukośnik odwrotny
  2. Puść oba klawisze
  3. Naciśnij klawisz S.

Lub kliknij przycisk podświetlony na poniższym obrazku.

Synchronizuj z aktywnym dokumentem

Można również dostosować skrót klawiaturowy, jeśli nie podoba ci się domyślna kombinacja :)

moander
źródło
27
Ten skrót klawiaturowy nazywa się SolutionExplorer.SyncWithActiveDocument(Narzędzia -> Opcje -> Środowisko -> Klawiatura)
Laoujin
27
Domyślny skrót to Ctrl + [, S w moim VS.
Roman O
CTRL + lewy ukośnik tak naprawdę nie działał dla mnie, patrz: stackoverflow.com/a/37158527/2874896
Jim Aho
Możesz chcieć dezaktywować Track Active Item in Solution Explorerpierwszy, więc synchronizacja eksploratora rozwiązań będzie się odbywać tylko po naciśnięciu tego skrótu zamiast „skakania” podczas przełączania plików kodu.
phifi
Niesamowite. wielka pomoc :)
sebastian
71

W programie Visual Studio 2015, 2017 i 2019 możesz nacisnąć Ctrl+, [a następnie s.

Spowoduje to wyróżnienie aktualnie edytowanego pliku w Eksploratorze rozwiązań.

Można to skonfigurować za pomocą następującego polecenia klawiaturowego: SolutionExplorer.SyncWithActiveDocument

Aby zmienić konfigurację, przejdź do Narzędzia -> Opcje -> Środowisko -> Klawiatura

Adrian Thompson Phillips
źródło
11
W Visual Studio 2015, z ReSharper, mogę nacisnąć "Shift" + "Alt" + "L", aby podświetlić aktualnie edytowany plik w Eksploratorze rozwiązań.
Jeremy Paskali
W Visual Studio 2013 Update 5 jest to również poprawna kombinacja.
FrankyHollywood
@JeremyPaskali Bardzo dziękuję za to. Ponieważ używam resharper, to jest dla mnie łatwiejszy sposób :).
C4d
1
@JeremyPaskali - Czy możesz dodać swój komentarz jako odpowiedź? Używam również ReSharper i to kombinacja klawiszy była jedyną, która działała dla mnie.
Philip Pittle
1
Dla tych, którzy chcą przemapować skrót na coś innego, w 2019 roku polecenie nazywa się „SolutionExplorer.SyncWithActiveDocument”.
Garrison Becker
27

O ile wiem, przed VS 2012 nie ma takiej opcji.

W VS 2012 wprowadzono opcję „Synchronizuj z aktywnym dokumentem”. Opis i ekran można znaleźć na tym blogu (przewiń do „Synchronizuj z aktywnym dokumentem” na środku strony).

psur
źródło
1
Należy to zaznaczyć jako poprawną odpowiedź, ponieważ dokładnie odpowiada na pytanie.
Umar Farooq Khawaja
20
Używamy teraz Resharper. Ma funkcję, która dokładnie to robi. Domyślny skrót: Shift + Alt + L
Laoujin,
1
Dzięki za polecenie Resharper, ja też tego szukałem.
bastijn
2
To jest zdecydowanie odpowiedź i nie wymaga narzędzi innych firm, takich jak ReSharper. Ctrl + „[”, a następnie „s” Lub: Naciśnij „Ctrl” i lewy nawias kwadratowy, a następnie „s”
Antony Booth
6

Aby zlokalizować plik, który aktualnie edytujesz w Eksploratorze rozwiązań:

Ctrl + W + S

Wcześniej korzystałem Shift + Alt + L, ale z jakiegoś powodu to już nie działa.

Inne sugestie ( Ctrl+\,Si Ctrl+[,SCtrl + `+ S) nie działają dla mnie w VS2015. Nie używam resharpera i nie lubię używać makr, gdy dostępne są proste skróty.

Spyder
źródło
To jedyny, który działał dla mnie w VS 2017, dzięki.
Felipe Costa Gualberto
5

W Visual Studio 2015, z ReSharper, mogę nacisnąć Shift+ Alt+, Laby podświetlić aktualnie edytowany plik w Eksploratorze rozwiązań.

Jeremy Paskali
źródło
Używam również ReSharper i była to jedyna kombinacja klawiszy, która działała dla mnie. Może ReSharper zastępuje domyślne ustawienia VS?
Philip Pittle,
Czy znasz nazwę polecenia klawiaturowego, w którym można skonfigurować ten skrót?
Ciaran Gallagher
3

Dla VS2010 znalazłem to makro i działa u mnie:

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

Oryginalne źródło tutaj

Kumpel
źródło
3

W programie Visual Studio 2010/2012 możesz użyć tego rozszerzenia ( łącza ). Dodaje opcję synchronizacji na pasku narzędzi Eksploratora rozwiązań i menu kontekstowym kodu.

user503386
źródło
"link" otwiera tę samą stronę XD
Mate
Pokazuje nową pozycję menu „Znajdź w Eksploratorze rozwiązań” w menu kontekstowym po kliknięciu prawym przyciskiem myszy na naszej karcie dokumentu. to menu znajduje się między pozycjami „Kopiuj pełną ścieżkę” i „Otwórz folder zawierający”.
S.Serpooshan,
0

Na klawiaturze musiałem wcisnąć:

Ctrl + ` + S

Zwróć uwagę, że znak pośrodku to klawisz po lewej stronie cofnięcia.

Korzystanie z programu Visual Studio 2015.

Jim Aho
źródło
Może pomóc, jeśli powiesz, którego układu używasz. Pomocna jest jednak informacja, gdzie znajduje się klucz.
bugybunny
0

Jeśli dobrze odpowiedziałem na Twoje pytanie, możesz przejść do Narzędzia -> Opcje -> Projekty i rozwiązania -> Ogólne i zaznaczyć opcję „Śledź aktywny element w Eksploratorze rozwiązań”.

amirdaraee
źródło