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ń.


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 :)


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


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).


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.


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ń.


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


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.


"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.


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ń”.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.