Чи є ярлик для переміщення між заголовком та вихідним файлом у 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 Macro для переключення між CPP і H файлами

або

Відкрийте відповідний файл у Visual Assist


2
Visual Assist - чудовий інструмент - я рекомендував би його всім розробникам, які використовують MSVC
Stephen Nutt

10
Для ледачих користувачів VisualAssist:Alt + O
nimcap

2
хтось має рішення для VS2013?
Шон Роуан

5
Він вбудований у VS 2013. blogs.msdn.com/b/vcblog/archive/2013/08/23/…
Кайл Алонс

3
Гаразд, моя погана. Не зрозумів, що Ctrl + K & Ctrl + O - це насправді команда ярликів SINGLE; не два варіанти одного і того ж. Можливо, варто згадати у відповіді людей, які не знайомі з VS :)
Петро Пеллер

31

У Visual Studio 2013 комбінація клавіш за замовчуванням для цього - Ctrl+ K, Ctrl+O


не працює для мене 2013 Community Edition. Загальні налаштування. Що таке ім'я комутатора у вікні Налаштувати / Клавіатура?
Джурлі

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

24

Ви можете додати цей макрос до конфігурації VS (через Інструменти -> Макроси -> Макропровідник), а потім призначити йому гарячу клавішу (через Інструменти -> Параметри -> Навколишнє середовище -> Клавіатура).

Я тільки що написав це (маю на увазі спробувати це на віки!), Але, здається, він працює поки що, як у VS2008, так і в VS2010.

Оскільки це макрос, ви можете редагувати його так, щоб він включав будь-які правила, які ви хочете (наприклад, переглядаючи інші папки або спеціальні правила іменування, якщо у вас є один заголовок, який спільний для декількох файлів cpp чи подібних).

Ось макрос (я впевнений, що він міг бути краще написаний; я незнайомий з об'єктами VS і використовував лише реалізовані макроси. Приблизно на півдорозі написання речі :)):

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: Запишіть макрос приєднання налагоджувача до EXE, над яким ви завжди працюєте, а потім наклейте його на панель інструментів. Вкладення одним кліком до цього запущеного процесу, коли вам потрібно буде налагодити його.
Лев Девідсон

вау, це чудово! Працює краще, ніж плагін Nifty Solutions, оскільки плагін може перемикатися лише між .h і .cpp, він не переходить з .hpp на .cpp
j00hi

Але куди поставити макрос? Чомусь мій VS2010 вже має макрос "Module1" ... тому я двічі клацнув, щоб відредагувати його, і вставив макро код у "Модуль загального модуля1". Звідти Інструменти => Параметри => Навколишнє середовище => Клавіатура, щоб налаштувати ярлик у текстовому редакторі.
Qwertie

Відмінний, перевірений та працюючий. Відповідь, опублікована в листопаді 2010 року - вона все ще працює в липні 2012 року. Ідеально!
rptr

1
Алекс: Макроси є глобальними для Visual Studio. Вони зберігаються у "макропроектах" (які дозволяють вам зберігати та завантажувати групи макросів), але, наскільки я можу, вони не пов'язані зі звичайним типом рішення / проекту. У макропроекті за замовчуванням визначено кілька макросів, які доступні до (і після), коли я відкриваю будь-яке рішення чи проект.
Лев Девідсон

9

Спробуйте PhatStudio . Це безкоштовно і постачається з простим інсталятором.

  • ALT+ S= Перемикання між заголовком / вихідним файлом

  • ALT+ O= Відкрити файл (підтримує миттєвий пошук за допомогою набору тексту, як-от меню запуску в Windows Vista / 7).


Дякую, це найпростіше рішення групи, і безкоштовно.
Рассел Девіс

8

Спробуйте Visual Assist, який займається цією особливістю (серед інших):

http://www.wholetomato.com/

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

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

EDIT: щойно пам’ятаєте, плагін Nifty Solution також робить це - плюс ще одна річ, схожа на Visual Assist, хоча нічого іншого - і вони безкоштовні:

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

(Плагін для виконання хлопця теж чудовий. Набагато кращий за сміття VSSCC за замовчуванням.)


Я підкажу Visual Assist. Я припускав, що це лише для мов .NET.
Нейт

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 файлами.
Яанус Варус

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 to .cpp перемикача Ctrl+ Tab.


1

Візуальна допомога також не підтримує видання Visual Studio Express. Таким чином, ви застрягли з макросом, якщо ви використовуєте цей IDE>



0

У своїй (не) обмеженій мудрості MS вирішили видалити макроси в MSVS 2012, тому макрос вище не працюватиме.

Для MSVS 2012 я виявив таке:

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

Це дуже налаштовано + якщо ви хочете допомогти вдосконалити його, ви можете зробити це на GitHub.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.