Visual Studio: acceso directo para desplazar el explorador de soluciones al archivo actual

82

No estoy pidiendo la opción de seguir automáticamente el archivo actual en el explorador de soluciones. Esto ha sido respondido en esta pregunta y tengo esta opción desactivada porque odio el comportamiento.

Me gustaría tener un atajo (o macro, o ....) para saltar al archivo que estoy editando actualmente en el explorador de soluciones.

Laoujin
fuente
¿Posible duplicado stackoverflow.com/a/55025095/661584 ?
MemeDeveloper

Respuestas:

107

En VS 2013 hay un atajo de teclado incorporado (CTRL + \, S)

  1. Presione CTRL + barra invertida
  2. Suelta ambas teclas
  3. Presione la tecla S

O haga clic en el botón resaltado en la imagen a continuación.

Sincronizar con documento activo

Uno también tiene la opción de personalizar el atajo de teclado si no le gusta la combinación predeterminada :)

gemir
fuente
27
Este atajo de teclado se llama SolutionExplorer.SyncWithActiveDocument(Herramientas -> Opciones -> Entorno -> Teclado)
Laoujin
27
El atajo predeterminado es Ctrl + [, S en mi VS.
Roman O
CTRL + barra invertida no funcionó para mí en realidad, vea: stackoverflow.com/a/37158527/2874896
Jim Aho
Es posible que desee desactivar el Track Active Item in Solution Explorerprimero, por lo que la sincronización del explorador de soluciones solo ocurrirá al presionar este acceso directo en lugar de "saltar" al cambiar los archivos de código.
phifi
Increíble. gran ayuda :)
sebastian
70

En Visual Studio 2015, 2017 y 2019, puede presionar Ctrl+ [y luego s.

Esto resaltará el archivo que se está editando actualmente en el Explorador de soluciones.

Esto se puede configurar mediante el siguiente comando de teclado: SolutionExplorer.SyncWithActiveDocument

Para reconfigurar, vaya a Herramientas -> Opciones -> Entorno -> Teclado

Adrian Thompson Phillips
fuente
11
En Visual Studio 2015, con ReSharper, puedo presionar "Shift" + "Alt" + "L" para resaltar el archivo actual que se está editando en el Explorador de soluciones.
Jeremy Paskali
En la actualización 5 de Visual Studio 2013, esta también es la combinación correcta.
FrankyHollywood
@JeremyPaskali Muchas gracias por esto. Como estoy usando resharper, esa es la forma más fácil de ir :).
C4d
1
@JeremyPaskali - ¿Puedes agregar tu comentario como respuesta? También estoy usando ReSharper, y esta combinación de teclas fue la única que funcionó para mí.
Philip Pittle
1
Para aquellos que quieran reasignar el acceso directo a otra cosa, en 2019 el comando se llama "SolutionExplorer.SyncWithActiveDocument".
Garrison Becker
27

Hasta donde yo sé, no existe tal opción antes de VS 2012.

En VS 2012 se introdujo la opción "Sincronizar con documento activo". Puede encontrar la descripción y la pantalla en este blog (desplácese hasta "Sincronizar con documento activo" en el medio de la página).

psur
fuente
1
Esto debe marcarse como la respuesta correcta, ya que responde con precisión a la pregunta.
Umar Farooq Khawaja
20
Estamos usando Resharper ahora. Tiene una función para hacer exactamente esto. Atajo predeterminado: Mayús + Alt + L
Laoujin
1
Gracias por el comando Resharper, yo también lo estaba buscando.
bastijn
2
Esta es definitivamente la respuesta y no requiere herramientas de terceros como ReSharper. Ctrl + '[' luego 's' O: Presione 'Ctrl' y el corchete izquierdo, luego 's'
Antony Booth
6

Para ubicar el archivo que está editando actualmente en el Explorador de soluciones:

Ctrl + W + S

Usé anteriormente Shift + Alt + L, pero por alguna razón esto ya no funciona.

Las otras sugerencias ( Ctrl+\,Sy Ctrl+[,SCtrl + `+ S) no me funcionan en VS2015. No uso resharper y no me gusta usar macros cuando hay disponibles atajos simples.

Spyder
fuente
Este es el único que funcionó para mí en VS 2017, gracias.
Felipe Costa Gualberto
5

En Visual Studio 2015, con ReSharper, puedo presionar Shift+ Alt+ Lpara resaltar el archivo actual que se está editando en el Explorador de soluciones.

Jeremy Paskali
fuente
También estoy usando ReSharper y esta fue la única combinación de teclado que funcionó para mí. ¿Quizás ReSharper anula los valores predeterminados de VS?
Philip Pittle
¿Conoce el nombre del comando de teclado donde se puede configurar este acceso directo?
Ciaran Gallagher
3

Para VS2010 encontré esta macro y funciona para mí:

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

Fuente original aquí

Compañero
fuente
3

En Visual Studio 2010/2012 puede utilizar esta extensión ( enlace ). Agrega la opción de sincronizar en la barra de herramientas del Explorador de soluciones y el menú contextual del código.

user503386
fuente
el "enlace" abre esta misma página XD
Mate
Muestra un nuevo elemento de menú "Buscar en el Explorador de soluciones" en el menú contextual cuando hace clic derecho en la pestaña de nuestro documento. este menú se coloca entre los elementos de menú "Copiar ruta completa" y "Abrir carpeta contenedora".
S.Serpooshan
0

En mi teclado tuve que presionar:

Ctrl + ` + S

Tenga en cuenta que el letrero en el medio es la tecla que se encuentra a la izquierda del retroceso.

Usando Visual Studio 2015.

Jim Aho
fuente
Podría ayudar si dijera qué diseño está usando. Sin embargo, la información donde se encuentra la llave es útil.
bugybunny
0

Si entendí bien tu pregunta, puedes ir a Herramientas -> Opciones -> Proyectos y soluciones -> General y marcar la opción "Seguimiento de elementos activos en el Explorador de soluciones".

amirdaraee
fuente