Visual Studio: Verknüpfung zum Scrollen des Lösungs-Explorers zur aktuellen Datei

80

Ich frage nicht nach der Option, der aktuellen Datei im Lösungs-Explorer automatisch zu folgen. Dies wurde in dieser Frage beantwortet und ich habe diese Option deaktiviert, weil ich das Verhalten hasse.

Ich hätte gerne eine Verknüpfung (oder ein Makro oder ...), um zu der Datei zu springen, die ich gerade im Lösungs-Explorer bearbeite.

Laoujin
quelle
Mögliches doppeltes stackoverflow.com/a/55025095/661584 ?
MemeDeveloper

Antworten:

103

In VS 2013 gibt es eine integrierte Tastenkombination (STRG + \, S).

  1. Drücken Sie STRG + Backslash
  2. Lassen Sie beide Tasten los
  3. Drücken Sie die S-Taste

Oder klicken Sie auf die im Bild unten hervorgehobene Schaltfläche.

Mit aktivem Dokument synchronisieren

Man hat auch die Möglichkeit, die Tastenkombination anzupassen, wenn Ihnen die Standardkombination nicht gefällt :)

Moander
quelle
25
Diese Tastenkombination heißt SolutionExplorer.SyncWithActiveDocument(Extras -> Optionen -> Umgebung -> Tastatur)
Laoujin
27
Die Standardverknüpfung ist Strg + [, S in meinem VS.
Roman O
STRG + Backslash hat bei mir eigentlich nicht funktioniert, siehe: stackoverflow.com/a/37158527/2874896
Jim Aho
Möglicherweise möchten Sie die Track Active Item in Solution Explorererste deaktivieren , sodass die Synchronisierung des Lösungs-Explorers nur durch Drücken dieser Verknüpfung erfolgt, anstatt beim Umschalten von Codedateien "herumzuspringen".
Phifi
Genial. große Hilfe :)
Sebastian
70

In Visual Studio 2015, 2017 und 2019 können Sie Ctrl+ [und dann drücken s.

Dadurch wird die Datei hervorgehoben, die gerade im Projektmappen-Explorer bearbeitet wird.

Dies kann über den folgenden Tastaturbefehl konfiguriert werden: SolutionExplorer.SyncWithActiveDocument

Navigieren Sie zum Neukonfigurieren zu Extras -> Optionen -> Umgebung -> Tastatur

Adrian Thompson Phillips
quelle
11
In Visual Studio 2015 kann ich mit ReSharper "Umschalt" + "Alt" + "L" drücken, um die aktuelle Datei hervorzuheben, die im Projektmappen-Explorer bearbeitet wird.
Jeremy Paskali
In Visual Studio 2013 Update 5 ist dies auch die richtige Kombination.
FrankyHollywood
@ JeremyPaskali Vielen Dank dafür. Da ich Resharper benutze, ist das der einfachere Weg für mich :).
C4d
1
@JeremyPaskali - Können Sie Ihren Kommentar als Antwort hinzufügen? Ich verwende auch ReSharper, und diese Tastenkombination war die einzige, die für mich funktioniert hat.
Philip Pittle
1
Für diejenigen, die die Verknüpfung neu zuordnen möchten, heißt der Befehl 2019 "SolutionExplorer.SyncWithActiveDocument".
Garrison Becker
27

Soweit ich weiß, gibt es vor VS 2012 keine solche Option.

In VS 2012 wurde die Option "Mit aktivem Dokument synchronisieren" eingeführt. Beschreibung und Bildschirm finden Sie in diesem Blog (scrollen Sie in der Mitte der Seite zu "Mit aktivem Dokument synchronisieren").

psur
quelle
1
Dies sollte als die richtige Antwort markiert werden, da es die Frage genau beantwortet.
Umar Farooq Khawaja
20
Wir verwenden jetzt Resharper. Es hat eine Funktion, um genau dies zu tun. Standardverknüpfung: Umschalt + Alt + L
Laoujin
1
Vielen Dank für den Resharper-Befehl, auch danach habe ich gesucht.
Bastijn
2
Dies ist definitiv die Antwort und erfordert keine Tools von Drittanbietern wie ReSharper. Strg + '[' dann 's' Oder: Drücken Sie 'Strg' und linke eckige Klammer, dann 's'
Antony Booth
6

So suchen Sie die Datei, die Sie gerade bearbeiten, im Projektmappen-Explorer:

Ctrl + W + S

Ich habe es früher benutzt Shift + Alt + L, aber aus irgendeinem Grund funktioniert es nicht mehr.

Die anderen Vorschläge ( Ctrl+\,Sund Ctrl+[,Sund Strg + `+ S) funktionieren bei mir in VS2015 nicht. Ich verwende kein Resharper und verwende keine Makros, wenn einfache Verknüpfungen verfügbar sind.

Spyder
quelle
Dies ist das einzige, das in VS 2017 für mich funktioniert hat, danke.
Felipe Costa Gualberto
5

In Visual Studio 2015 kann ich mit ReSharper Shift+ Alt+ drücken L, um die aktuelle Datei hervorzuheben, die im Projektmappen-Explorer bearbeitet wird.

Jeremy Paskali
quelle
Ich verwende auch ReSharper und dies war die einzige Tastaturkombination, die für mich funktioniert hat. Vielleicht überschreibt ReSharper die VS-Standardeinstellungen?
Philip Pittle
Kennen Sie den Namen des Tastaturbefehls, unter dem diese Verknüpfung konfiguriert werden kann?
Ciaran Gallagher
3

Für VS2010 habe ich dieses Makro gefunden und funktioniert für mich:

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

Originalquelle hier

Kamerad
quelle
3

In Visual Studio 2010/2012 können Sie diese Erweiterung ( Link ) verwenden. Es wird eine Option zum Synchronisieren in der Symbolleiste des Projektmappen-Explorers und im Code-Kontextmenü hinzugefügt.

user503386
quelle
Der "Link" öffnet dieselbe Seite XD
Mate
Entschuldigung, das wurde jetzt behoben.
user503386
Wenn Sie mit der rechten Maustaste auf unsere Registerkarte "Dokument" klicken, wird im Kontextmenü ein neuer Menüpunkt "Im Projektmappen-Explorer suchen" angezeigt. Dieses Menü befindet sich zwischen den Menüelementen "Vollständigen Pfad kopieren" und "Enthaltenen Ordner öffnen".
Serpooshan
1

Für VS 2017 lautet die Standardkonfiguration:

STRG + [, S.

Und die vollständige Liste der Verknüpfungen finden Sie hier:

http://visualstudioshortcuts.com/2017/

cpoDesign
quelle
0

Auf meiner Tastatur musste ich drücken:

Strg + ` + S.

Beachten Sie, dass das Zeichen in der Mitte der Schlüssel links von der Rücktaste ist.

Verwenden von Visual Studio 2015.

Jim Aho
quelle
Es könnte hilfreich sein, wenn Sie angeben, welches Layout Sie verwenden. Die Informationen, wo sich der Schlüssel befindet, sind jedoch hilfreich.
Bugybunny
0

Wenn ich Ihre Frage richtig gestellt habe, können Sie unter Extras -> Optionen -> Projekte und Lösungen -> Allgemein die Option "Aktives Element im Projektmappen-Explorer verfolgen" aktivieren.

amirdaraee
quelle