Как найти файл в обозревателе решений в Visual Studio 2010?


172

У меня есть огромное решение с несколькими проектами. Иногда мне нужно перейти к файлу в обозревателе решений . Используя функцию « Навигация к » в VS 2010, я могу открыть любой файл по имени в Visual Studio 2010, но я также хочу выбрать этот файл в Solution Explorer ?


4
Вопрос был о VS2010, но в случае, если кто-то смотрит на VS2013: Проверьте Ctrl-; для поиска в обозревателе решений или Ctrl- для функции «Навигация до» VS2012 / 13.
Джон

1
Для родного пути для VS 2012 и выше, проверьте ответ Аарона Карлсона ниже.
Дерек Моррисон

Ответы:


198

В обозревателе решений есть возможность отслеживать активный (открытый и просматриваемый) элемент. Если файл отображается, файл в обозревателе решений будет выбран.

Инструменты-> Параметры-> Проекты и решения-> Отслеживание активного элемента в обозревателе решений


33
Эти настройки приводят к тому, что узлы проекта и решения постоянно расширяются при открытии файлов. После 15 минут работы над большим проектом у меня появилось так много узлов, что обозреватель решений стал непригодным. DPack решение лучше IMO.
Карел Крал

@ karel-kral, я добавил ответ, в котором используется макрос для переключения этого параметра, который решает проблему расширенного узла.
Мартин Холлингсворт,

Перечисленные здесь решения reharper или dpack позволяют обойти проблему, о которой говорил Мартин, и сделать этот ответ не предпочтительным вариантом, если у вас есть другие доступные вам.
Роб Седжвик

2
Для VS2012 + @ ответ Аарона самый лучший. Не устанавливать вещи Ctrl + [, s
BritishDeveloper

3
Он сказал, что он только хотел отслеживать файл «Иногда», а не все время. Ответ Аарона Карлсона должен быть помечен как правильный ответ.
RayLoveless

150

VS2012 добавил новую команду под названием SolutionExplorer.SyncWithActiveDocument. Ярлык по умолчанию для c # - Ctrl+ [,S

Эта команда перейдет к активному файлу в обозревателе решений.

Также кажется, что вам нужно отключить опцию «Отслеживать активный элемент в обозревателе решений».


4
Массивный упущение, что это не вошло в Visual Studio 6.0. Или даже раньше. WTF.
Almo

3
Спасибо! В моем VS2013 , Ctrl+ [, Sбыл по умолчанию установлен для проверки файла и SolutionExplorer.SyncWithActiveDocumentне был настроен.
hwcverwe

1
@krypru, я уже некоторое время пользуюсь VS2015, и он все еще работает для меня. Может быть, он не сопоставлен с тем же ярлыком в вашей среде?
Аарон Карлсон

2
К вашему сведению, вам не нужно запоминать сочетание клавиш: в Solution Explorer (я нахожусь в VS 2015) вверху есть значок (двойные стрелки), который выполняет «Синхронизация с активным документом».
ToolmakerSteve

2
VS 2017 добавил раскладку клавиатуры «ReSharper» в меню «Инструменты» -> «Параметры» -> «Среда» -> «Клавиатура». Это сопоставляет встроенную функциональность VS с эквивалентным ярлыком ReSharper. Как только вы установите это, вы можете использовать ярлык Shift+ Alt+ L.
Andacious

121

Shift+ Alt+ Lнайдет текущий файл в обозревателе решений в Visual Studio 2008+ с установленным ReSharper.


4
когда вы отслеживаете, вам не нужен этот ярлык.
Давут Гюрбюз

5
Это команда Reshaper. У меня работает с Visual Studio 2010 с установленным ReSharper.
Радим Черней

+1; @ DavutGürbüz Иногда вам нужно, чтобы Visual Studio 2012 снова запустил автоматическое отслеживание. Время от времени (несмотря на флажок «... Track Active ...», Visual Studio 2012 останавливает отслеживание. Этот ярлык ReSharper включит его без необходимости перезапуска Visual Studio.
Jeroen Wiert Pluimers

@JeroenWiertPluimers я вижу. Я использую расширение DPack. Это очень легкий и простой в использовании. Просто щелкните правой кнопкой мыши вкладку файла и выберите «Найти» в обозревателе решений. Я настоятельно рекомендую это. Работает все версии VS. ReSharper тоже хорош, но мы не предпочитаем. Потому что мы не используем большинство его функций. Это делает VS тяжелее. Отслеживание усложняет поиск решений. DPack - лучший. stackoverflow.com/a/4747759/413032
Давут Гюрбюз

3
Отслеживание не должно быть включено, чтобы Shift + Alt + L работал. По крайней мере, не в VS 2010, который я использую.
Тор Хауген

36

Я нахожу вариант трека немного раздражающим.

Я предпочитаю использовать DPack . Он содержит операцию «Найти в Solution Explorer», а также множество других функций (некоторые из них менее мощны в VS2010, как и их браузеры), и он бесплатный .

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


Наиболее простое решение («Отслеживание активного элемента» раздражает, а ReSharper не бесплатен).
Ян Кемп

@IanKemp, это дело вкуса. IMO отслеживание раздражает, потому что: 1. иногда мне нравится дерево sln, чтобы оставаться сосредоточенным на определенном узле. 2. через некоторое время дерево sln полностью раскрывается.
HuBeZa

28

Для этого у Брайана Шмитта есть отличный файл Locate в Solution Explorer - Visual Studio Macro . Макрос очень прост и быстр. В основном это переключает настройку

Tools->Options->Projects and Solutions->Track Active Item in Solution Explorer

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

Public Sub LocateFileInSolutionExplorer()
    DTE.ExecuteCommand("View.TrackActivityinSolutionExplorer")
    DTE.ExecuteCommand("View.TrackActivityinSolutionExplorer")
    DTE.ExecuteCommand("View.SolutionExplorer")
End Sub

Привязать сочетание клавиш к этому пользовательскому макросу, чтобы эффективно создать то, что должно быть встроенной функцией Visual Studio.


Это действительно работает в VS 2010 и проще в настройке, чем вы думаете (советы по добавлению макроса: helixoft.com/blog/archives/6 ).
user1068352 13.09.13

Ссылка, размещенная в первой строке ответа, не работает. Вы можете это исправить, пожалуйста?
Тяги Ахилеш

@TyagiAkhilesh - обратите внимание, что этот ответ (добавление вашего собственного макроса) необходим только в том случае, если вы все еще используете VS 2010. В более новые версии встроена команда.
ToolmakerSteve

16

Если у вас есть ReSharper и вы хотите добавить «Найти в обозревателе решений» в контекстное меню вкладки:

  1. Зайдите в Инструменты -> Настройка -> Команды -> Контекстное меню
  2. Выберите «Другие контекстные меню | Окно документа Easy MDI».
  3. Нажмите «Добавить команду».
  4. Выберите «Resharper» -> «ReSharper_LocateInSolutionOrAssemblyExplorer» (в VS2019 название категории было изменено на «Расширения»)
  5. «ОК» -> «Закрыть»

Теперь, когда вы щелкнете правой кнопкой мыши по любой вкладке, вы увидите новую опцию: Найдите в Solution Explorer.

ОБНОВИТЬ:

Следуя комментарию @ jeremy-paskali, вы можете установить сочетание клавиш для этой команды:

  1. Зайдите в Инструменты -> Настройка -> "Клавиатура ..."
  2. Найдите «ReSharper.ReSharper_LocateInSolutionOrAssemblyExplorer» в поле «Показать команды, содержащие» и выберите его.
  3. Просмотрите назначенные в данный момент ярлыки в раскрывающемся списке ниже.
  4. Внесите любые изменения, если это необходимо.
  5. «ОК» -> «Закрыть»

3
В Visual Studio 2015, если затем нажать кнопку «Клавиатура ...» в нижней части окна «Настройка», откроется диалоговое окно «Параметры -> Среда -> Клавиатура». В этом диалоговом окне вы можете перейти к «ReSharper.ReSharper_LocateInSolutionOrAssemblyExplorer» и найти или изменить сочетание клавиш для этой команды. Я обнаружил, что мой VS2015 был установлен на «Shift + Alt + L», и он работает!
Джереми Паскали

Более чем два года спустя, что трюк с контекстным меню все еще работает с VS 2017 и R # 2018.2. Спасибо за это!
Майкл Армес,

Если попытка Shift+Alt+Lне сработала для вас в VS2019, то это, безусловно, работает.
gosr

11

Я знаю, что немного поздно, но надеюсь, что это поможет кому-то еще. Наилучшим вариантом сейчас является установка Microsoft Visual Studio с надстройкой - Инструменты повышения производительности.

http://visualstudiogallery.msdn.microsoft.com/d0d33361-18e2-46c0-8ff2-4adea1e34fef

С этим приходит «Solution Navigator» (альтернатива Solution Explorer, с большим количеством преимуществ) - который затем вы можете использовать для фильтрации файлов, чтобы показать только «Open». Вы даже можете отфильтровать файлы, чтобы показать «Отредактировано» и «Несохранено».


Я использую VS 2012 и электроинструменты. Я нигде не вижу Solution Navigator. Вы хотели бы уточнить эту тему? Мол, скажи где именно находится Solution Navigator.
отметка

Ред. Microsoft планировала это сделать, но в итоге перешла только на некоторые ее части. Я был разочарован тем, что они оставили этот также.
друг

10

Visual Studio 2012 имеет новый ярлык Ctrl [, S. Да, вы должны набрать Ctrl [и затем отпустить, а затем сразу же набратьS (или щелкнуть маленький значок синхронизации в верхней части Solution Explored). Это будет синхронизироваться с элементом.

Конечно, вы можете изменить ярлык. Думаю попробуюAlt+L найти.

Если вы хотите изменить ярлык, это имя команды под Options\Environment\KeyboardэтоSolutionExplorer.SyncWithActiveDocument .

Обычно это более полезно, чем всегда отслеживание, которое в старых версиях всегда было катастрофой, потому что оно отслеживало 100 элементов подряд, а затем прыгало повсюду ...


Большой !!! В моем VS2012 сочетания клавиш есть Ctrl+', s. Так что вы должны измениться [с цитатой '. Я надеюсь, что это поможет кому-то.
Ferpega

3
"или щелкните маленький значок синхронизации в верхней части Solution Explore." Для меня самый простой способ сделать это в более новых версиях VS. Хороший!
Андреас

Спасибо @mrt! Я полностью замял это в этом ответе; но вы избавили меня от необходимости делать какие-то странные шаги по настройке (или помните неясный ярлык) ...! Эта кнопка должна быть более четко
обозначена

5

Если вы хотите отслеживать текущий файл только с помощью сочетания клавиш - действие называется «View.TrackActivityinSolutionExplorer» (назначьте ключи здесь -> Инструменты - Параметры - Среда - Клавиатура)

Кредит (комментарий Джеймса)

Это сработало для меня


Обратите внимание, что этот параметр включает параметр «Отслеживать активный элемент в обозревателе решений». Если вы не хотите сохранять эту опцию (потому что она раздражает), вы должны дважды ввести назначенные сочетания клавиш: один раз, чтобы включить ее (найти выбранный элемент), а затем снова, чтобы отключить эту опцию.
Ричард


0

Если вы хотите выбрать файл в обозревателе решений по команде и не хотите ничего устанавливать, я бы порекомендовал этот макрос .

Я протестировал его, установив ярлык на Alt + T, и я могу подтвердить, что он работает с VS 2010.

Спасибо Дэну Вандербуму за его написание.


0

В Visual Studio 2010 вы можете включить параметр «Отслеживать активный элемент в обозревателе решений». Это будет означать, что при переключении между документами новый документ выбирается в обозревателе решений. Это может раздражать, если в вашем решении много папок, потому что при перемещении файлов в вашем решении все папки останутся открытыми.

Visual Studio 2012 представила новую функцию «Синхронизация с активным документом». Три - это кнопка вверху Solution Explorer, или вы можете использовать ярлык Ctrl + [, S.

снимок экрана с кнопкой активного документа


Разве это уже не было должным образом охвачено существующими ответами лет назад?
ToolmakerSteve

0

Для Visual Studio 2017 с использованием французской клавиатуры AZERTY команда такая же, как заявлена ​​Аароном Карлсоном, но сочетание клавиш отличается.

Сочетание клавиш AZERTY для перехода к активному файлу для c # - Ctrl+ ),Ctrl +S

Я проверил, что ярлык не изменился для пользователей QWERTY в VS2017 на этой странице http://visualstudioshortcuts.com/2017/

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