Есть ли ярлык для перемещения между заголовком и исходным файлом в VС++?

Это особенность, к которой я привык в Eclipse (Ctrl + Tab). Есть ли эквивалент в Visual C++?

Ответ 1

В Visual Studio 2013 и более поздних версиях для этого есть комбинация клавиш по умолчанию: Ctrl + K, Ctrl + O (Вам нужно будет удерживать Ctrl и набрать ko, а затем отпустить Ctrl)

В более ранних версиях см.

Макрос Visual Studio для переключения между CPP и файлами H

или

Открыть соответствующий файл в Visual Assist

Ответ 2

В Visual Studio 2013 по умолчанию для этого сочетания клавиш Ctrl + K, Ctrl + O

Ответ 3

Вы можете добавить этот макрос в свою конфигурацию VS (через 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

Вот скриншот (очень широкий:)), показывающий, как выглядят макрокоманды и диалоговые окна "горячие клавиши/параметры", чтобы помочь тем, кто не знаком с ними:

enter image description here

Ответ 4

Попробуйте визуальную помощь, которая поддерживает эту особенность (среди прочего):

http://www.wholetomato.com/

Функциональность просмотра кода, из которой сводка заголовка /cpp является одной частью, действительно хороша.

(Я также действительно оценил его функции intellisense и рефакторинга, но не все, с кем я говорил, согласились со мной.)

EDIT: только что запомнилось, Nifty Solution Plugin также делает это - плюс еще одна ручная визуальная помощь, но ничего больше - и они бесплатны:

http://code.google.com/p/niftyplugins/

(Плагин man perforce тоже замечательный. Гораздо лучше, чем дефолтный мусор VSSCC.)

Ответ 5

Попробуйте PhatStudio. Он бесплатный и поставляется с простым установщиком.

  • ALT + S= Переключение между заголовком/исходным файлом

  • ALT + O= Открыть файл (поддерживает мгновенный поиск по набору текста, например, в меню "Пуск" в Windows Vista/7).

Ответ 6

В Visual Studio 2008 и 2010 вы можете щелкнуть правой кнопкой мыши в своем .cpp файле и выбрать "Go To Header File...", который приведет вас в одном направлении. В другом направлении, если вы щелкните правой кнопкой мыши то, что вы объявляете в заголовке, и выберите "Перейти к определению", это приведет вас в другое направление. Возможно, вам придется пройти диалог диагноза двусмысленности, если вы выберете конструктор, потому что имя функции соответствует имени класса, но если вы выберете что-нибудь еще, вы пойдете прямо туда, где хотите. Я знаю, что это подход с двумя щелчками, а не одно нажатие клавиши, но он делает то, что вы хотите.

Ответ 7

Я не вижу здесь этого ответа, но, по крайней мере, в Visual Studio 2012 (Express включен!), вы можете просто назначить свою собственную команду клавиатуры, чтобы перейти в заголовочный файл (ПРИМЕЧАНИЕ: идет только в одну сторону - вы можете К сожалению, вернуться к исходному файлу...)

  • Перейдите в раздел "Инструменты/Параметры/Среда/Клавиатура".
  • Найдите следующую команду: EditorContextMenus.CodeWindow.GoToHeaderFile
  • Назначьте любую комбинацию клавиш, которую вы хотите (Alt-S работает)
  • Profit

Не знаете, в каких версиях VS это работает, но он не требует надстройки и, кажется, делает трюк хотя бы в одном направлении.

Ответ 8

Если вы поместите указатель мыши на объявление функции в заголовке и нажмите F12, файл cpp будет открыт при определении файла cpp... Я использую эту функцию широко!

Ответ 10

Я поклонник Visual Assist для этого. Его не дешево, но он обеспечивает гораздо больше функциональности, чем переключение между заголовком и источником. Я также широко использую его открытый файл в проектах и ​​классах. Конечно, макрос свободен...

Ответ 12

Visual Assist также не поддерживает экспресс-редакцию Visual Studio. Таким образом, вы застряли в макросе, если используете эту среду IDE >

Ответ 13

Для Visual Studio 2013, как упоминалось другими, это команда с именем:

EditorContextMenus.CodeWindow.ToggleHeaderCodeFile

и он имеет комбинацию клавиш по умолчанию: Ctrl + K, Ctrl + O, но его можно изменить, если ввести новую комбинацию клавиш, которые вам нравятся в

Нажмите сочетания клавиш:

под

Инструменты → Параметры → Среда → Клавиатура.

Итак, вы можете выбрать комбинацию пользовательских клавиш, так как мой любимый для .h к .cpp-переключателю Ctrl + Tab.

Ответ 14

В Visual Studio 2008 он Alt + O.

Ответ 15

В своей (конечной) мудрости MS решила удалить макросы в MSVS 2012, поэтому макрос выше не будет работать.

Для MSVS 2012 я нашел это:

http://www.dwmkerr.com/switch/

Он очень настраивается +, если вы хотите помочь его улучшить, вы можете сделать это на GitHub.

Ответ 16

В Visual Studio 2013 это ALT + O