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


82

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

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


Возможный дубликат stackoverflow.com/a/55025095/661584 ?
MemeDeveloper

Ответы:


107

В VS 2013 есть встроенное сочетание клавиш (CTRL + \, S)

  1. Нажмите CTRL + обратная косая черта
  2. Отпустите обе клавиши
  3. Нажмите клавишу S

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

Синхронизировать с активным документом

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


27
Это сочетание клавиш называется SolutionExplorer.SyncWithActiveDocument(Инструменты -> Параметры -> Среда -> Клавиатура)
Лауджин

27
Ярлык по умолчанию - Ctrl + [, S в моем VS.
Roman O

CTRL + обратная косая черта для меня не сработала, см. Stackoverflow.com/a/37158527/2874896
Джим Ахо

Возможно, вы захотите деактивировать Track Active Item in Solution Explorerпервый, поэтому синхронизация проводника решений будет происходить только при нажатии этого ярлыка, а не «прыгать» при переключении файлов кода.
phifi

Потрясающе. отличная помощь :)
себастьян

71

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

Это выделит файл, редактируемый в настоящее время в обозревателе решений.

Это можно настроить с помощью следующей команды клавиатуры: SolutionExplorer.SyncWithActiveDocument

Чтобы перенастроить, перейдите в Инструменты -> Параметры -> Среда -> Клавиатура.


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

В Visual Studio 2013 с обновлением 5 это тоже правильная комбинация.
FrankyHollywood

@JeremyPaskali Большое спасибо за это. Поскольку я использую resharper, это более простой способ для меня :).
C4d,

1
@JeremyPaskali - Можете ли вы добавить свой комментарий в качестве ответа? Я также использую ReSharper, и эта комбинация клавиш была единственной, которая у меня сработала.
Филип Питтл

1
Для тех, кто хочет переназначить ярлык на что-то другое, в 2019 году команда называется «SolutionExplorer.SyncWithActiveDocument».
Garrison Becker

27

Насколько я знаю, до VS 2012 такой опции не было.

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


1
Это должно быть отмечено как правильный ответ, поскольку он точно отвечает на вопрос.
Умар Фарук Хаваджа

20
Сейчас мы используем Resharper. У него есть особенность делать именно это. Ярлык по умолчанию: Shift + Alt + L
Laoujin 05

1
Спасибо за команду Resharper, я тоже искал это.
bastijn

2
Это определенно ответ и не требует сторонних инструментов, таких как ReSharper. Ctrl + '[' затем 's' Или: нажмите 'Ctrl' и левую квадратную скобку, затем 's'
Энтони Бут

6

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

Ctrl + W + S

Раньше использовал Shift + Alt + L, но почему-то уже не работает.

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


Это единственное, что у меня работало в VS 2017, спасибо.
Фелипе Коста Гуальберто

5

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


Я также использую ReSharper, и это была единственная комбинация клавиш, которая у меня сработала. Может быть, ReSharper отменяет настройки VS по умолчанию?
Филип Питтл,

Знаете ли вы, как называется клавиатурная команда, в которой можно настроить этот ярлык?
Ciaran Gallagher

3

Для 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

Первоисточник здесь


3

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


"ссылка" открывает эту же страницу XD
Mate

Он показывает новый пункт меню «Найти в обозревателе решений» в контекстном меню, когда вы щелкаете правой кнопкой мыши вкладку нашего документа. это меню расположено между пунктами меню «Копировать полный путь» и «Открыть содержащую папку».
С.Серпушан 09


0

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

Ctrl + ` + S

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

Используя Visual Studio 2015.


Возможно, вы скажете, какой макет используете. Тем не менее, информация, где находится ключ, может оказаться полезной.
bugybunny

0

Если я правильно понял ваш вопрос, вы можете перейти в Инструменты -> Параметры -> Проекты и решения -> Общие и установить флажок «Отслеживать активный элемент в обозревателе решений».

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.