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


82

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

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


Можливий дублікат stackoverflow.com/a/55025095/661584 ?
MemeDeveloper

Відповіді:


107

У VS 2013 є вбудована комбінація клавіш (CTRL + \, S)

  1. Натисніть CTRL + коса коса риса
  2. Відпустіть обидві клавіші
  3. Натисніть клавішу S.

Або натисніть кнопку, виділену на зображенні нижче.

Синхронізувати з активним документом

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


27
Ця комбінація клавіш називається SolutionExplorer.SyncWithActiveDocument(Інструменти -> Параметри -> Навколишнє середовище -> Клавіатура)
Laoujin

27
Ярлик за замовчуванням - Ctrl + [, S у моїй VS.
Роман О

CTRL + зворотна коса риса для мене насправді не спрацювала, див .: stackoverflow.com/a/37158527/2874896
Джим Ахо

Можливо, ви захочете деактивувати Track Active Item in Solution Explorerперший, тому синхронізація провідника рішення відбуватиметься лише при натисканні цього ярлика, замість того, щоб "стрибати" навколо при перемиканні файлів коду.
phifi

Приголомшливо велика допомога :)
sebastian

70

У 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".
Гарнізон Беккер

27

Наскільки мені відомо, до VS 2012 такого варіанту не було.

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


1
Це слід позначити як правильну відповідь, оскільки вона точно відповідає на питання.
Умар Фарук Хаваджа,

20
Зараз ми використовуємо Resharper. У нього є особливість робити саме це. Ярлик за замовчуванням: Shift + Alt + L
Laoujin

1
Дякую за команду Resharper, я теж шукав це.
bastijn

2
Це однозначно відповідь і не вимагає сторонніх інструментів, таких як ReSharper. Ctrl + '[' then 's' Або: натисніть 'Ctrl' та ліву квадратну дужку, потім 's'
Ентоні Бут,

6

Щоб знайти файл, який ви зараз редагуєте, у Провіднику рішень:

Ctrl + W + S

Раніше я користувався Shift + Alt + L, але з якихось причин це вже не працює.

Інші пропозиції ( Ctrl+\,Sта Ctrl+[,Sі Ctrl + `+ 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 ви можете використовувати це розширення ( посилання ). Це додає можливість синхронізації на панелі інструментів Solution Explorer і контекстному меню коду.


"посилання" відкрити цю саму сторінку XD
Mate

Він відображає новий пункт меню "Знайти у провіднику рішень" у контекстному меню, коли ви клацаєте правою кнопкою миші на нашій вкладці документа. це меню розташоване між пунктами меню "Копіювати повний шлях" та "Відкрити папку, що містить".
S.Serpooshan


0

На клавіатурі мені довелося натиснути:

Ctrl + ` + S

Зверніть увагу, що знак посередині - це клавіша зліва від зворотного простору.

Використання Visual Studio 2015.


Це може допомогти, якщо ви сказали, який макет ви використовуєте. Інформація, де знаходиться ключ, все ж корисна.
bugybunny

0

Якщо я правильно зрозумів ваше запитання, ви можете перейти до Інструменти -> Параметри -> Проекти та рішення -> Загальне та встановити прапорець «Відстежувати активний елемент у Провіднику рішень».

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.