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.