Visual Studio: ярлык для прокрутки проводника решений к текущему файлу

Я не запрашиваю для параметра автоматически следовать текущему файлу в проводнике решений. На этот вопрос ответил этот вопрос, и у меня отключена эта опция, потому что я ненавижу поведение.

Я хотел бы иметь ярлык (или макрос или....), чтобы перейти к файлу, который я сейчас редактирую в проводнике решений.

Ответ 1

В VS 2013 существует встроенная комбинация клавиш (CTRL + \, S)

  • Нажмите CTRL + обратную косую черту
  • Отпустите обе клавиши
  • Нажмите клавишу S

Или нажмите кнопку, выделенную на рисунке ниже.

Sync with active document

У вас также есть возможность настроить сочетание клавиш, если вам не нравится комбинация по умолчанию:)

Ответ 2

В Visual Studio 2015, 2017 и 2019 вы можете нажать Ctrl + [, а затем s.

Это выделит файл, который в данный момент редактируется в Solution Explorer.

Ответ 3

Насколько я знаю, такого опциона до VS 2012 не существует.

В VS 2012 была введена опция "Синхронизировать с активным документом". Вы можете найти описание и экран на этом блоге (перейдите к "Синхронизация с активным документом" в середине страницы).

Ответ 4

Чтобы найти файл, который вы сейчас редактируете в обозревателе решений:

Ctrl + W + S

Я ранее использовал Shift + Alt + L, но по какой-то причине это больше не работает.

Другие предложения (Ctrl+\,S и Ctrl+[,S и Ctrl + `+ S) не работают для меня в VS2015. Я не использую resharper и не люблю использовать макросы, когда доступны простые ярлыки.

Ответ 5

В Visual Studio 2015 с помощью ReSharper я могу нажать Shift + Alt + L, чтобы выделить текущий файл, редактируемый в обозревателе решений.

Ответ 6

Для VS2010 я нашел этот макрос и работает для меня:

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

Исходный источник здесь

Ответ 7

В Visual Studio 2010/2012 вы можете использовать это расширение (ссылка). Он добавляет возможность синхронизации на панели инструментов Solution Explorer и в контекстном меню кода.

Ответ 8

На моей клавиатуре мне пришлось нажать:

Ctrl + ` + S

Обратите внимание, что знак в середине - это ключ слева от обратного пространства.

Использование Visual Studio 2015.

Ответ 9

Если я правильно понял ваш вопрос, вы можете перейти в Сервис → Параметры → Проекты и решения → Общие и установить флажок "Отслеживать активный элемент в обозревателе решений".

Ответ 10

Для VS 2017 конфигурация по умолчанию:

CTRL + [, S

И полный список ярлыков вы можете найти здесь:

http://visualstudioshortcuts.com/2017/