Apakah ada jalan pintas untuk berpindah antara file header dan source di VC ++?

112

Ini adalah fitur yang biasa saya gunakan di Eclipse ( Ctrl+ Tab). Apakah ada kesamaan dalam Visual C ++?

JeffV
sumber
Lihat juga pertanyaan ini
idbrii
@ LưuVĩnhPhúc Saat Anda berada di header atau kode sumber di Eclipse, tekan Alt-Tab dan Eclipse akan mengalihkan Anda antara sumber dan header, dengan asumsi Anda telah mengindeks proyek dengan benar.
MrMas

Jawaban:

138

Di Visual Studio 2013 dan yang lebih baru, ada pintasan keyboard default untuk ini: Ctrl+ K, Ctrl+ O (Anda perlu menahan Ctrl dan ketik ko lalu lepaskan Ctrl )

Di versi sebelumnya, lihat:

Visual Studio Macro untuk beralih antara file CPP dan H.

atau

Buka File yang Sesuai dalam Bantuan Visual

Kyle Alons
sumber
2
Visual Assist adalah alat yang hebat - Saya akan merekomendasikannya untuk semua pengembang yang menggunakan MSVC
Stephen Nutt
10
Untuk pengguna VisualAssist yang malas:Alt + O
nimcap
2
apakah ada yang punya solusi untuk VS2013?
Shaun Rowan
5
Ini dibangun untuk VS 2013. blogs.msdn.com/b/vcblog/archive/2013/08/23/…
Kyle Alons
3
Ok, salahku. Tidak menyadari Ctrl + K & Ctrl + O sebenarnya adalah perintah pintasan TUNGGAL; bukan dua opsi yang sama. Mungkin layak disebutkan dalam jawaban untuk orang-orang yang baru mengenal VS :)
Petr Peller
31

Dalam Visual Studio 2013 pintasan keyboard default untuk ini adalah Ctrl+ K, Ctrl+O

Anton K
sumber
tidak bekerja untuk saya. Edisi Komunitas 2013. Pengaturan Umum. Apa nama commad di jendela Customize / Keyboard?
Jurlie
12
Nama perintah:EditorContextMenus.CodeWindow.ToggleHeaderCodeFile
codekaizen
24

Anda dapat menambahkan makro ini ke konfigurasi VS Anda (melalui Tools -> Macros -> Macro Explorer) kemudian menetapkan hotkey ke dalamnya (melalui Tools -> Options -> Environment -> Keyboard).

Saya baru saja menulisnya (sudah lama ingin mencoba ini!) Tetapi tampaknya berhasil sejauh ini, di VS2008 dan VS2010.

Karena ini makro, Anda dapat mengeditnya untuk menyertakan aturan apa pun yang Anda inginkan (mis. Mencari di folder lain, atau aturan penamaan khusus jika Anda memiliki satu header yang digunakan bersama oleh beberapa file cpp atau serupa).

Berikut makro (saya yakin itu bisa lebih baik ditulis; Saya tidak terbiasa dengan objek VS dan hanya menyadari makro yang menggunakan .Net sekitar setengah jalan melalui penulisannya :)):

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

Berikut tangkapan layar (sangat luas :)) yang menunjukkan seperti apa editor makro dan dialog hotkey / opsi, untuk membantu mereka yang tidak terbiasa dengannya:

masukkan deskripsi gambar di sini

Leo Davidson
sumber
1
Trik VS makro favorit lainnya: Rekam makro untuk melampirkan debugger ke exe yang selalu Anda kerjakan, lalu tempelkan di toolbar. Lampiran sekali klik ke proses yang sedang berjalan itu kapan pun Anda perlu men-debugnya.
Leo Davidson
wow, bagus sekali! Bekerja lebih baik daripada Plugin Solusi Nifty, karena Plugin hanya dapat beralih antara .h dan .cpp, tidak beralih dari .hpp ke .cpp
j00hi
Tapi di mana harus meletakkan makro? Untuk beberapa alasan VS2010 saya sudah memiliki makro "Module1" ... jadi saya mengklik dua kali untuk mengeditnya dan memasukkan kode makro di dalam "Public Module Module1". Dari sana Alat => Opsi => Lingkungan => Keyboard untuk mengatur pintasan di Editor Teks.
Qwertie
Luar biasa, teruji, dan berfungsi. Answer diposting pada Nov 2010 - Masih berfungsi pada Juli 2012. Sempurna!
rptr
1
Alex: Makro bersifat global untuk Visual Studio. Mereka disimpan dalam "proyek makro" (yang memungkinkan Anda menyimpan dan memuat grup makro) tetapi itu tidak terkait dengan jenis solusi / proyek biasa, sejauh yang saya tahu. Saya memiliki beberapa makro yang ditentukan dalam proyek makro default yang tersedia sebelum (dan setelah) saya membuka solusi atau proyek apa pun.
Leo Davidson
9

Coba PhatStudio . Ini gratis dan dilengkapi dengan penginstal yang mudah.

  • ALT+ S= Beralih di antara file header / sumber

  • ALT+ O= Buka file (mendukung pencarian instan melalui pengetikan, seperti menu mulai di Windows Vista / 7).

Tymek
sumber
Terima kasih, ini adalah solusi termudah dari kelompok itu, dan juga gratis.
Russell Davis
8

Cobalah Visual Assist, yang menampilkan fitur ini (antara lain):

http://www.wholetomato.com/

Fungsi penjelajahan kode - di mana header / cpp swap adalah salah satu bagiannya - sangat bagus.

(Saya juga benar-benar menilai fitur intellisense dan refactoring-nya, tetapi tidak semua orang yang saya ajak bicara setuju dengan saya.)

EDIT: baru saja diingat, Plugin Solusi Nifty juga melakukan ini - ditambah hal lain yang mirip Visual Assist, meskipun tidak ada yang lain - dan gratis:

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

(Plugin perforce pria itu bagus juga. Jauh lebih baik daripada sampah VSSCC default.)


sumber
Saya akan melihat Visual Assist. Saya berasumsi itu untuk bahasa .NET saja.
Nate
5

Dalam Visual Studio 2008 dan 2010, Anda dapat mengklik kanan pada file .cpp Anda dan memilih Go To Header File ... yang akan membawa Anda ke satu arah. Untuk arah lain, jika Anda mengklik kanan sesuatu yang Anda deklarasikan di header, dan memilih Go To Definition, itu akan membawa Anda ke arah lain. Anda mungkin harus melalui dialog resolusi ambiguitas jika Anda memilih konstruktor, karena nama fungsinya cocok dengan nama kelas, tetapi jika Anda memilih yang lain, Anda akan langsung menuju ke tempat yang Anda inginkan. Saya tahu ini adalah pendekatan dua klik, bukan satu penekanan tombol, tetapi melakukan apa yang Anda inginkan.

Kate Gregory
sumber
5

Jika Anda meletakkan mouse di atas deklarasi fungsi di header dan menekan F12, file cpp akan dibuka pada definisi file cpp ... Saya menggunakan fitur ini secara ekstensif!


sumber
5

Saya tidak melihat jawaban ini di sini, tetapi setidaknya di Visual Studio 2012 (termasuk Express!), Anda dapat menetapkan perintah keyboard Anda sendiri untuk masuk ke file header (CATATAN: Hanya berjalan satu arah - Anda tidak bisa pergi sayangnya kembali ke file sumber ...)

  1. Pergi ke Alat / Opsi / Lingkungan / Keyboard.
  2. Temukan perintah berikut: EditorContextMenus.CodeWindow.GoToHeaderFile
  3. Tetapkan kombinasi tombol apa pun yang Anda inginkan (Alt-S berfungsi)
  4. Keuntungan

Tidak yakin versi VS mana yang berfungsi, tetapi tidak memerlukan add-in apa pun dan tampaknya melakukan trik setidaknya dalam satu arah.

aardvarkk.dll
sumber
Dalam Visual Studio 2013 ada perintah yang disebut EditorContextMenus.CodeWindow.ToggleHeaderCodeFile yang melakukan hal itu, beralih antara file .h dan .cpp.
Jaanus Varus
3

Saya penggemar Visual Assist untuk melakukan ini. Ini tidak murah tetapi menyediakan lebih banyak fungsionalitas daripada beralih antara header dan sumber. Saya juga menggunakan file terbukanya dalam proyek dan fitur penjelajahan kelas banyak. Tentu saja makro itu gratis ...

JohnO
sumber
2

Untuk Visual Studio 2013, seperti yang disebutkan oleh orang lain, itu adalah perintah bernama:

EditorContextMenus.CodeWindow.ToggleHeaderCodeFile

dan memiliki kombinasi tombol default: Ctrl+ K, Ctrl+ O, tetapi dapat diubah jika Anda memperkenalkan kombinasi tombol baru yang Anda suka di

Tekan tombol pintas:

dibawah

Alat -> Opsi -> Lingkungan -> Keyboard .

Jadi Anda dapat memilih kombinasi tombol khusus sebagai favorit saya untuk sakelar .h ke .cpp adalah Ctrl+ Tab.

meJustAndrew
sumber
1

Bantuan visual juga tidak mendukung edisi Visual studio express. Jadi Anda terjebak dengan makro jika Anda menggunakan IDE itu>

Fion
sumber
0

Dalam Visual Studio 2008, ini Alt+ O.

Marek Szanyi
sumber
8
Anda harus menginstal Visual Assist - itu adalah keybinding perintah Visual Assist.
sean e
0

Dalam kebijaksanaannya yang terbatas, MS memutuskan untuk menghapus makro di MSVS 2012, sehingga makro di atas tidak akan berfungsi.

Untuk MSVS 2012, saya menemukan ini:

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

Ini sangat dapat dikonfigurasi + jika Anda ingin membantu memperbaikinya, Anda dapat melakukannya di GitHub.

Csimbi
sumber
0

Dalam Visual Studio 2013 ini ALT+O

Sagi Sulimani
sumber