Есть ли ярлык для перемещения между заголовком и исходным файлом в VC++?
Это функция, к которой я привык в Eclipse (alt-tab). Есть ли эквивалент в Visual C++?
15 ответов:
в Visual Studio 2013 и более поздних версиях для этого есть сочетание клавиш по умолчанию:Ctrl+K,Ctrl+O (Вам нужно будет удерживать Ctrl и типа ко а потом отпустите Ctrl)
в более ранних версиях, см.:
макрос Visual Studio для переключения между CPP и H файлами
или
вы можете добавить этот макрос в свой vs config (через Tools -> Macros -> Macro Explorer), а затем назначить ему горячую клавишу (через Tools -> Options -> Environment -> Keyboard).
Я только что написал (хотел попробовать это на века!) но это, кажется, работает до сих пор, как в VS2008 и VS2010.
поскольку это макрос, вы можете отредактировать его, чтобы включить любые правила, которые вы хотите (например, поиск в других папках или специальные правила именования, если у вас есть один заголовок, общий для нескольких cpp файлы или аналогичные).
вот макрос (я уверен, что он может быть лучше написан; я не знаком с объектами VS и только реализованные макросы использовали .Net примерно на полпути к написанию вещи :)):
Sub FileSwitch() Try Dim CurrentPath As String = DTE.ActiveDocument.FullName Dim OtherPath As String If (IO.Path.HasExtension(CurrentPath)) Then Dim CurrentExtension As String = IO.Path.GetExtension(CurrentPath) Select Case CurrentExtension Case ".h", ".hpp", ".hxx" OtherPath = IO.Path.ChangeExtension(CurrentPath, ".cpp") If (Not IO.File.Exists(OtherPath)) Then OtherPath = IO.Path.ChangeExtension(CurrentPath, ".c") If (Not IO.File.Exists(OtherPath)) Then OtherPath = IO.Path.ChangeExtension(CurrentPath, ".cxx") End If End If Case ".cpp", ".c", ".cxx" OtherPath = IO.Path.ChangeExtension(CurrentPath, ".h") If (Not IO.File.Exists(OtherPath)) Then OtherPath = IO.Path.ChangeExtension(CurrentPath, ".hpp") If (Not IO.File.Exists(OtherPath)) Then OtherPath = IO.Path.ChangeExtension(CurrentPath, ".hxx") End If End If Case Else End Select If (OtherPath <> Nothing) Then DTE.ItemOperations.OpenFile(OtherPath) End If End If Catch ex As System.Exception MsgBox(ex.Message) End Try End Sub
вот (очень широкий :)) скриншот, показывающий, как должен выглядеть редактор макросов и диалоговые окна горячих клавиш/опций, чтобы помочь тем, кто не знаком с ними:
попробуйте Visual Assist, который занимается этой самой функцией (среди прочих):
функциональность просмотра кода , из которых своп заголовка/cpp является одной частью, действительно хороша.
(Я также действительно оценил его функции intellisense и рефакторинга, но не все, с кем я говорил, согласились со мной.)
EDIT: только что вспомнил, отличный плагин решения также делает это-плюс еще один удобный визуальный Помощь-как вещь, хотя ничего другого - и они свободны:
http://code.google.com/p/niftyplugins/
(плагин парня perforce тоже отличный. Гораздо лучше, чем мусор VSSCC по умолчанию.)
попробовать PhatStudio. Это бесплатно и поставляется с простым инсталлятором.
ALT + S = переключение между заголовком / исходным файлом
ALT + O = открыть файл (поддерживает мгновенный поиск с помощью ввода, как меню Пуск в Windows Vista/7).
в Visual Studio 2008 и 2010, Вы можете щелкнуть правой кнопкой мыши в вашем .cpp-файл и выберите Перейти к Заголовочному файлу ... это приведет вас в одном направлении. Для другого направления, если вы щелкните правой кнопкой мыши то, что вы объявляете в заголовке, и выберите Перейти к определению, что приведет вас в другом направлении. Возможно, вам придется пройти через диалоговое окно разрешения неоднозначности, если вы выберете конструктор, потому что имя функции соответствует имени класса, но если вы выберете что-нибудь еще, вы пойдете прямо там, где ты хочешь. Я знаю, что это подход с двумя щелчками, а не одним нажатием клавиши, но он делает то, что вы хотите.
Я не вижу этого ответа здесь, но, по крайней мере, в Visual Studio 2012 (Экспресс включен!), вы можете просто назначить свою собственную команду клавиатуры, чтобы перейти к файлу заголовка (Примечание: только идет в одну сторону-вы не можете вернуться к исходному файлу, к сожалению...)
- перейдите в раздел Инструменты / Параметры / окружающая среда / клавиатура.
- найдите следующую команду: EditorContextMenus.Кодовое окно.GoToHeaderFile
- назначьте любую комбинацию клавиш, которую вы хотите (Alt-S работает)
- прибыль
Не уверен, какие версии VS это работает, но он не требует каких-либо надстроек и, кажется, делает трюк по крайней мере в одном направлении.
Если вы наведете курсор мыши на объявление функции в заголовке и нажмете F12, файл cpp будет открыт в определении файла cpp... Я использую эту функцию широко!
попробуйте использовать Switch-это надстройка, которая позволяет вам переключаться между исходным кодом и заголовком, кодом и дизайнером, XAML и codebehind и т. д.:
http://www.dwmkerr.com/switch/ или непосредственно в продукты и расширения для Visual Studio
Я поклонник визуальной помощи для этого. Его не дешево, но он обеспечивает гораздо больше функциональности, чем переключение между заголовком и источником. Я также использую его открытый файл в проекте и функции просмотра классов много. Конечно, макрос свободен...
есть еще макрос, указанный на всем форуме поддержки помидоров, который имеет еще несколько файл сопоставления.
Visual assist также не поддерживает выпуски Visual studio express. Таким образом, вы застряли с макросом, если вы используете эту IDE>
для Visual Studio 2013, Как упоминалось другими, это команда с именем:
EditorContextMenus.CodeWindow.ToggleHeaderCodeFile
и он имеет в качестве комбинации клавиш по умолчанию:Ctrl+K,Ctrl+O, но он может быть изменен, если вы введете новую комбинацию клавиш, которые вам нравятся в
нажмите клавиши быстрого доступа:
под
Инструменты - > Параметры - > Окружающая Среда - > Клавиатура.
Так вы можете выбрать пользовательскую комбинацию клавиш в качестве моей любимой .ч до .выключатель педали сцепления Ctrl+Tab.
в своей конечной мудрости MS решила удалить макросы в MSVS 2012, поэтому макрос выше не будет работать.
для MSVS 2012, я нашел это:
http://www.dwmkerr.com/switch/
Это настраиваемый + если вы хотите помочь улучшить его, вы можете сделать это на GitHub.