Есть ли ярлык для перехода между заголовком и исходным файлом в 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.