Buka dua contoh file dalam satu sesi Visual Studio

555

Saya punya file, xyz.cpp . Saya ingin membuka dua contoh file ini di Visual studio (BTW, saya menggunakan Visual Studio 2005). Mengapa saya ingin melakukannya? Saya ingin membandingkan dua bagian dari file yang sama berdampingan. Saya tahu solusinya seperti:

  1. Buat salinan file. Tetapi masalahnya adalah itu tidak elegan, dan saya tidak ingin membuat salinan setiap kali saya dihadapkan dengan ini.

  2. Saya dapat membagi jendela menjadi dua. Masalah dengan membaginya sehingga saya hanya bisa membaginya secara horizontal. Hasil dari pemisahan horizontal adalah bahwa separuh kanan layar saya adalah ruang putih.

Jika saya dapat membaginya secara vertikal atau membuka dua contoh dari file yang sama, itu akan meningkatkan jumlah baris kode yang dapat saya bandingkan.

Suri teladan
sumber
12
Jika Anda hanya ingin membandingkan bagian file, Anda dapat menggunakan Window | Split yang akan membagi file secara horizontal dari tengah.
vexe
@vexe Sempurna. Apa yang saya butuhkan. Membagi windows, keduanya mengedit file yang sama.
Vincent P
3
Apa alasan Anda belum menerima jawaban dengan suara terbanyak?
cp.engr
1
@ cp.engr, dari profilnya: "Terakhir terlihat pada 6 Desember 2009 pada 12:41". Sayang sekali bahwa pengguna tingkat tinggi tidak dapat menandai jawaban yang diterima.
Dokter Jones

Jawaban:

904

Inilah cara melakukannya ...

  1. Pilih tab yang Anda inginkan dari dua salinan
  2. Pilih menu WindowNew Window dari menu.
  3. Klik kanan tab baru dan pilih Grup Tab Vertikal Baru

Jika Jendela Baru tidak tercantum dalam menu * Jendela perhatikan bahwa perintah itu ada, bahkan pada Visual Studio 2017. Tambahkan ke menu Jendela menggunakan menu AlatKustomisasiPerintah . Pada saat itu tentukan di mana harus meletakkan perintah New Window dan pilih Add Command .

DIPERBARUI pada "30 Juli 2018"

Dalam Visual Studio Code versi 1.25.1 dan yang lebih baru

Cara 1

Anda dapat dengan mudah klik kiri pada file Anda di panel samping (explorer) dan tekan Ctrl+ Enter.

Cara 2

Cukup klik kanan pada file Anda di panel samping Kode Visual Studio (explorer) dan pilih opsi pertama yang terbuka ke samping .

PaulB
sumber
50
Jika Anda memiliki ruang layar yang tersedia seperti monitor kedua, Anda juga dapat menarik tab baru dari Visual Studio dan melihatnya, misalnya, di monitor kedua.
Artur Carvalho
4
Anda hanya dapat melakukan ini untuk jenis file tertentu ... misalnya, Anda tidak dapat membuka dua jendela pada file .xaml yang sama. Yang menyedihkan, karena itulah yang ingin saya lakukan!
cplotts
4
@ Shlomi.A. Coba Jawaban Luke
Jason S
2
Untuk XAML di WPF opsi New Window tidak ada di sana.
Preza8
2
Metode ini berfungsi, tetapi pada VS 2010 saya pintasan [Ctrl] [Shift] [N] terikat ke File> New> Project
user1556435
67

Untuk Visual Basic, HTML dan JScript dan Ekspresi RDL, Window > New Windowopsi yang disebutkan dalam jawaban PaulB dinonaktifkan. Namun opsi dapat diubah di Registry untuk mengaktifkan item menu.

Semua bahasa lain tidak terbatas pada jendela kode tunggal sehingga Anda dapat menggunakan jawaban PaulB tanpa mengedit registri.

Mengaktifkan Jendela Baru di Windows Registry. [ 1 ] [ 2 ]

  1. Buka kunci registri berikut. Contoh ini adalah untuk Dasar (Visual Basic), tetapi kuncinya juga ada untuk HTML, JScript dan Ekspresi RDL.

    • OS 64-bit: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\10.0\Languages\Language Services\Basic
    • OS 32-bit: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\10.0\Languages\Language Services\Basic
  2. Temukan nilai Single Code Window Onlydan lakukan salah satu dari yang berikut:

    • Setel ke 0
    • Ganti nama nilainya
    • Hapus nilainya ( hati-hati !)

Ini akan mengaktifkan item menu "Jendela Baru", tetapi mungkin masih tidak terlihat di menu.

Menambahkan Item Menu

Untuk benar-benar melihat item menu New Window saya harus menambahkannya kembali ke menu:

  • Alat> Sesuaikan ...> Perintah> Tambahkan Perintah ...
  • Pilih 'Menu Bar', pilih menu 'Window' di dropdown
  • Tambahkan Perintah ...> Jendela> Jendela Baru> OK

Mengembalikan Nilai Registri
Salin-tempel ini ke notepad, simpan sebagai file .reg dan impor file ke dalam registri Anda untuk memulihkan pengaturan awal.

[HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ VisualStudio \ 10.0 \ Languages ​​\ Language Services \ Basic]
"Hanya Jendela Kode Tunggal" = dword: 00000001
Luke Hoffmann
sumber
Tidak perlu mengedit registri untuk file C # karena item menu 'Jendela Baru' harus sudah diaktifkan untuk file C # (dalam VS 2010). Anda hanya perlu melakukan ini untuk VB, HTML atau JScript. Menurut laporan masalah MS Connect ini setiap masalah dengan ini diperbaiki untuk VB, Anda hanya perlu menghapus atau mengganti nama entri registri untuk mengaktifkan fitur.
Jason S
1
Ini berfungsi di Visual Basic 2010 Express juga, saya senang melaporkan. Kunci registri sedikit berbeda: [HKEY_LOCAL_MACHINE \ Software \ Wow6432Node \ Microsoft \ VBExpress \ 10.0 \ Languages ​​\ Language Services \ Basic].
evilspoons
Tidak bekerja untuk saya. Mencoba memulai kembali VS2010, akan memberikannya kesempatan lain setelah me-reboot komputer ... (siapa yang tahu bagaimana entri registri dibaca / disimpan / diperbarui)
Mars Robertson
Saya baru saja menguji ini (saya kira kunci registri saya ditimpa oleh pembaruan atau sesuatu). Saya tidak membutuhkan reboot. Saya mengubah kunci dengan menjalankan VS2010, 'Jendela Baru' masih diklik. Kemudian ditutup VS2010 dan membuka VS2010 dan 'Jendela Baru' tersedia.
Luke Hoffmann
3
Dalam VS2010, membalik bit registri untuk JScript memang memungkinkan tab kedua dibuka untuk file JavaScript (yay), tetapi tidak ada apa pun kecuali putih yang diberikan di setiap tab (boo).
G-Wiz
18

Buka file (jika Anda menggunakan beberapa grup tab, pastikan file Anda dipilih).

Menu WindowSplit (bergantian, ada inti kecil ini tepat di atas scroll bar vertikal editor - ambil dan seret ke bawah)

Ini memberi Anda dua (horisontal) tampilan file yang sama. Berhati-hatilah karena tindakan edit apa pun akan mencerminkan kedua tampilan.

Setelah selesai, ambil pembagi dan seret semuanya (atau menu WindowRemove Split ).

Peter Mortensen
sumber
2
(Sri: maaf, 'horizontal' seperti pada baris tampilan 'disejajarkan ... atau satu tampilan di atas yang lain). AFAIK, tampilan vertikal (berdampingan) tidak dimungkinkan.
7
Tampaknya belum membaca OP, di mana dia menyebutkan dia sangat menyadari hal ini.
Jason S
17

Buka menuWindowsJendela Baru :

Masukkan deskripsi gambar di sini

Kishore Sahasranaman
sumber
Dan hadiah nobel untuk solusi terbaik di seluruh multiverse jatuh kepada Anda @Kishore
Sotiris Zegiannis
9

Jawaban Luke tidak berhasil untukku. Perintah 'Jendela Baru' sudah terdaftar di pengaturan kustomisasi, tetapi tidak muncul di menu konteks tab .js, meskipun menghapus pengaturan registri.

Jadi saya menggunakan:

Alat

Ubahsuaikan ...

Papan ketik...

Gulir ke bawah untuk memilih Window.NewWindow

Dan saya menekan dan menetapkan tombol pintas, Ctrl+ Shift+ W.

Itu berhasil bagi saya.

==== EDIT ====

Ya, 'berhasil' terlalu kuat. Pintasan keyboard saya memang membuka tab lain pada file JavaScript yang sama, tetapi agak tidak membantu tidak membuat konten; itu hanya jendela putih kosong! Anda mungkin lebih beruntung.

dumbledad
sumber
3
Terima kasih. Ini bekerja untuk saya untuk VS2012 / VB.net. Alat Terbuka - opsi - (di bawah lingkungan) keyboard - pilih visual basic 6 dari dropdown - pilih Window.NewWindow dari daftar perintah - tekan ctrl + n, ctrl + w
CodingSlayer
8

Dengan file Anda dibuka, buka jendela perintah (menu LihatWindows LainJendela perintah , atau hanya Ctrl+ Alt+ A)

Tipe:

Window.NewWindow

Lalu

Window.NewVerticalTabGroup

bekerja untuk saya (Visual Studio 2017).

Atau menggunakan menu:

Jendela Menu → Jendela Baru

Menu WindowGrup tap vertikal baru

Gustavo Rossi Muller
sumber
Anda melakukan para Dewa bekerja dengan ini anakku. Terima kasih.
Andrew
4

Menu Window , New Horizontal / Vertical Tab Group akan ada, saya pikir.

Anton Gogolev
sumber
3
AFAI lihat, Anda tidak dapat membuka file yang sama dalam grup tab yang berbeda
Gishu
3

Ketika bekerja dengan Visual Studio 2013 dan VB.NET saya menemukan bahwa Anda dapat dengan mudah menyesuaikan menu dan menambahkan perintah "Jendela Baru" - tidak perlu dipusingkan dengan registri!

Hanya Tuhan yang tahu mengapa Microsoft memilih untuk tidak memasukkan perintah untuk beberapa bahasa ...?

mikrofon
sumber
Bekerja dengan mudah untukku! Menu Tools > Customize . Kemudian di tab Perintah , pilih Jendela di dropdown pertama, lalu klik tombol Tambahkan Perintah dan voa! (Visual Studio 2019)
cyberponk
3

Untuk versi yang lebih baru (seperti Visual Studio 2017)

  • Pilih jendela yang ingin Anda duplikat.
  • Buka tab jendela dan klik pada perpecahan di bagian atas daftar.
  • Setelah selesai, klik lagi untuk mematikannya.
Peter Mortensen
sumber
3
Perpecahan jendela dalam dua bagian tidak sama dengan dua jendela.
Tipx
1

Untuk jenis file, di mana file yang sama tidak dapat dibuka dalam grup tab vertikal (misalnya file .vb), Anda dapat melakukannya

  • Buka 2 instance Visual Studio yang berbeda
  • Buka file yang sama di setiap contoh
  • Ubah ukuran jendela IDE & letakkan berdampingan untuk mencapai tata letak Anda.

Jika Anda menyimpan ke disk dalam satu contoh, Anda harus memuat ulang file ketika Anda beralih ke yang lain. Juga jika Anda mengedit di kedua contoh, Anda harus menyelesaikan penyimpanan kedua. Visual Studio meminta Anda dalam kedua kasus dengan berbagai opsi. Anda akan menyederhanakan hidup Anda sedikit jika hanya mengedit satu contoh.

Gishu
sumber
@Odrade - Bisakah Anda mengarahkan saya ke jawaban yang benar yang berfungsi untuk semua jenis file ...
Gishu
@ Alasan Ok, tetapi masih salah untuk menyatakan bahwa Anda tidak dapat membuka file yang sama beberapa kali untuk perbandingan berdampingan. Ini jelas dimungkinkan, setidaknya untuk file .cs.
Odrade
@Odrade Anda benar. Saya telah mengedit untuk mencoba dan memperbaikinya. Memberitahu Anda jika Anda ingin menghapus komentar berdasarkan versi sebelumnya.
Jason S
@Odrade sempat mencoba jawaban Luke. Jauh lebih baik daripada membuka dua instance VS untuk pengguna VB dan memiliki upvote saya.
Jason S
Tampaknya ini satu-satunya solusi untuk file html, di mana edit registri hanya memberikan jendela kedua kosong
Chris F Carroll
1

Saya tidak memiliki salinan Visual Studio 2005, tetapi proses ini berfungsi pada Visual Studio 2008:

  1. Buka xyz.cpp bersama dengan beberapa file lainnya.
  2. Klik kanan pada header tab dan pilih grup tab vertikal baru.
  3. Klik kiri pada file lain di grup tab pertama.
  4. Buka xyz.cpp melalui solusi explorer lagi.

Anda sekarang harus memiliki dua contoh file dalam grup tab vertikal yang terpisah.

si618
sumber
Pada VS2K5 dan VS2K8 saya hanya menunjukkan contoh asli di tab kedua untuk saya. Ini adalah jika saya mengklik dua kali di Solution Explorer, Drag'n'drop dari File Explorer, atau melalui File | Buka menu.
Simeon Pilgrim
@Simeon - Itu terjadi jika tidak ada file lain yang terbuka (bagian 2 dari langkah 1.)
si618
Ia tahu file asli dibuka di grup tab lainnya. Mungkin ini berhubungan lagi dengan file yang diizinkan untuk digandakan.
neoswf
0

Saya datang dengan retasan yang mungkin menghasilkan hasil yang dimaksudkan dalam jawaban asli.

Jika Anda memiliki file yang Anda inginkan di dua jendela di kontrol sumber, Anda dapat mengklik kanan pada file dan memilih membandingkan, Anda dapat membandingkan

Jika Anda membandingkan, Anda akan memiliki jendela baru yang disebut diff, menampilkan konten file Anda.

Ini tentu saja tidak ideal karena jendela diff akan memiliki warna diff mencemari teks. Catatan: Anda dapat membandingkan file yang ingin Anda buka dan mengosongkan file, dan kemudian Anda akan memiliki jendela di latar belakang hijau yang sangat jelek.

Ini tidak sempurna, ini adalah peretasan, tapi itu satu-satunya cara yang saya temukan untuk benar-benar memiliki file yang sama di dua jendela.

berserck
sumber