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


112

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


См. Также этот вопрос
— idbrii

@ LưuVĩnhPhúc Когда вы находитесь в заголовке или исходном коде в Eclipse, нажмите Alt-Tab, и Eclipse переключит вас между источником и заголовком, если вы правильно проиндексировали проект.
— MrMas

Ответы:


138

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

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

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

или

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


2
Visual Assist - отличный инструмент. Я бы порекомендовал его всем разработчикам, использующим MSVC,
— Стивен Натт,

10
Для ленивых пользователей VisualAssist:Alt + O
— nimcap

2
у кого-нибудь есть решение для VS2013?
— Шон Роуэн,


3
Хорошо, моя проблема. Не осознавал, что Ctrl + K и Ctrl + O на самом деле являются ОДНОЙ командой быстрого доступа; не два варианта одного и того же. Возможно, стоит упомянуть в ответе для
— новичков

31

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


у меня не работает 2013 Community Edition. Общие настройки. Что такое имя команды в окне настройки / клавиатуры?
— Jurlie

12
Название команды:EditorContextMenus.CodeWindow.ToggleHeaderCodeFile
— codekaizen

24

Вы можете добавить этот макрос в свою конфигурацию VS (через Инструменты -> Макросы -> Проводник макросов), а затем назначить ему горячую клавишу (через Инструменты -> Параметры -> Среда -> Клавиатура).

Я только что написал это (давно хотел попробовать!), Но, похоже, до сих пор он работает как в 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

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

введите описание изображения здесь


1
Еще один любимый трюк с макросами VS: запишите макрос для подключения отладчика к исполняемому файлу, над которым вы всегда работаете, а затем закрепите его на панели инструментов. Прикрепление к этому запущенному процессу одним щелчком мыши всякий раз, когда вам нужно его отладить.
— Лео Дэвидсон

Ух ты, здорово! Работает лучше, чем плагин Nifty Solutions, так как плагин может переключаться только между .h и .cpp, он не переключается с .hpp на .cpp
— j00hi

А куда поставить макрос? По какой-то причине в моем VS2010 уже есть макрос «Module1» ... поэтому я дважды щелкнул, чтобы отредактировать его, и вставил код макроса в «Public Module Module1». Оттуда Инструменты => Параметры => Среда => Клавиатура, чтобы настроить ярлык в текстовом редакторе.
— Qwertie

Отлично, проверено и работает. Ответ опубликован в ноябре 2010 г. - Он все еще работает в июле 2012 г. Отлично!
— rptr

1
Алекс: Макросы глобальны для Visual Studio. Они сохраняются в «проектах макросов» (которые позволяют сохранять и загружать группы макросов), но, насколько я могу судить, они не имеют отношения к обычному типу решения / проекта. У меня есть несколько макросов, определенных в проекте макросов по умолчанию, которые доступны до (и после) открытия любого решения или проекта.
— Лео Дэвидсон,

9

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

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

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


Спасибо, это самое простое решение из всех, к тому же бесплатное.
— Рассел Дэвис

8

Попробуйте Visual Assist, в котором есть эта функция (среди прочего):

http://www.wholetomato.com/

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

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

РЕДАКТИРОВАТЬ: только что вспомнил, плагин Nifty Solution также делает это - плюс еще одна удобная вещь, похожая на Visual Assist, но ничего больше - и они бесплатны:

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

(Плагин этого парня тоже великолепен. Намного лучше, чем мусор VSSCC по умолчанию.)


Я посмотрю Visual Assist. Я предполагал, что это было только для языков .NET.
— Nate

5

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


5

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


5

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

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

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


В Visual Studio 2013 есть команда EditorContextMenus.CodeWindow.ToggleHeaderCodeFile, которая выполняет именно это, переключает между файлами .h и .cpp.
— Jaanus Varus

4

Попробуйте использовать Switch - это надстройка, которая позволяет переключаться между источником и заголовком, кодом и дизайнером, XAML и выделенным кодом и т. Д .:

http://www.dwmkerr.com/switch/ или напрямую из продуктов и расширений для Visual Studio


1
ЭТО ТРЕБУЕТСЯ !!!!!!!!!!!! СПАСИБО!!!!!!!!!!! Если установщик не работает, используйте его с codeproject.com/Articles/324611/… .
— Michal Sznajder

3

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



2

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

EditorContextMenus.CodeWindow.ToggleHeaderCodeFile

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

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

под

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

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


1

Визуальный помощник также не поддерживает экспресс-выпуски Visual Studio. Значит, вы застряли в макросе, если используете эту IDE>



0

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

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

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

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


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