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/