Bir dosyanın iki örneğini tek bir Visual Studio oturumunda açma


555

Bir dosyam var, xyz.cpp . Bu dosyanın iki örneğini Visual Studio'da açmak istiyorum (BTW, Visual Studio 2005 kullanıyorum). Neden bunu yapmak isteyeyim ki? Aynı dosyanın iki bölümünü yan yana karşılaştırmak istiyorum. Gibi geçici çözümleri biliyorum:

  1. Dosyanın bir kopyasını oluşturun. Ama sorun şu ki zarif değil ve bununla her karşılaştığımda kopya yapmak istemiyorum.

  2. Pencereyi ikiye bölebilirim. Bölme sorunu sadece yatay olarak bölebiliyorum. Yatay bir bölünmenin sonucu, ekranımın sağ yarısının beyaz boşluk olmasıdır.

Dikey olarak bölebilir veya aynı dosyanın iki örneğini açabilseydim, karşılaştırabileceğim kod satırlarının sayısını artıracaktır.


12
Dosyanın bazı bölümlerini karşılaştırmak istiyorsanız, Pencere | Split, dosyayı yatay olarak ortadan böler.
vexe

@vexe Mükemmel. Tam olarak ihtiyacım olan şey. Her ikisini de aynı dosyayı düzenleyen pencereleri böler.
Vincent P

3
En çok oy alan cevabı kabul etmemenizin bir nedeni var mı?
cp.engr

1
@ cp.engr, profilinden: "Son görülme 6 Aralık '12:41 de". Yüksek rep kullanıcılarının cevapları kabul edilmiş olarak işaretleyememesi utanç vericidir.
Doctor Jones

Yanıtlar:


904

İşte nasıl yapılacağı ...

  1. İki kopyasını istediğiniz sekmeyi seçin
  2. Menüden PencereYeni Pencere'yi seçin.
  3. Yeni sekmeyi sağ tıklayın ve Yeni Dikey Sekme Grubu'nu seçin

Eğer Yeni Pencere * Pencere menüsü notta yer almıyorsa komut bile bunu ekle Visual Studio 2017 itibariyle var mıdır o Pencere menüsünü kullanarak menüde AraçlarÖzelleştirKomutları . Bu noktada Yeni Pencere komutunu nereye koyacağınıza karar verin ve Komut Ekle'yi seçin .

"30 Temmuz 2018" tarihinde GÜNCELLENDİ

Visual Studio Code sürüm 1.25.1 ve sonraki sürümlerinde

Yol 1

Yan panelde (gezgin) dosyanızın üzerine basitçe sol tıklayıp Ctrl+ tuşuna basabilirsiniz Enter.

Yol 2

Basitçe sağ Visual Studio Kod yan panel (kaşif) daki dosyasını tıklayın ve ilk seçeneği tarafına açık .


50
İkinci bir monitör gibi kullanılabilir bir ekran alanınız varsa, yeni sekmeyi Visual Studio'nun dışına sürükleyebilir ve örneğin ikinci monitörde görebilirsiniz.
Artur Carvalho

4
Bunu yalnızca belirli dosya türleri için yapabilirsiniz ... örneğin, aynı .xaml dosyasında açık iki pencereniz olamaz. Bu bir serseri, çünkü bunu yapmak istiyorum!
cplotts

4
Shlomi.A @. Luke'un Cevabını
Jason S

2
WPF'deki XAML için Yeni Pencere seçeneği yoktur.
Preza8

2
Bu yöntem çalışır, ancak VS
2010'umda

67

Visual Basic, HTML ve JScript ve RDL İfadesi için PaulB'nin cevabındaWindow > New Window belirtilen seçenek devre dışıdır. Ancak Kayıt Defteri'nde menü öğesini etkinleştirmek için bir seçenek değiştirilebilir.

Diğer tüm diller tek bir kod penceresiyle sınırlı değildir, bu nedenle kayıt defterini düzenlemeden PaulB'nin yanıtını kullanabilirsiniz .

Windows Kayıt Defteri'nde Yeni Pencereyi Etkinleştirme. [ 1 ] [ 2 ]

  1. Aşağıdaki kayıt defteri anahtarına gidin. Bu örnek Basic (Visual Basic) içindir, ancak anahtar HTML, JScript ve RDL İfadesi için de mevcuttur.

    • 64 bit işletim sistemi: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\10.0\Languages\Language Services\Basic
    • 32 bit işletim sistemi: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\10.0\Languages\Language Services\Basic
  2. Değeri bulun ve Single Code Window Onlyaşağıdakilerden birini yapın:

    • 0 olarak ayarla
    • Değeri yeniden adlandırın
    • Değeri silin ( dikkatli olun !)

Bu, "Yeni Pencere" menü öğesini etkinleştirir, ancak menüde hala görünmeyebilir.

Menü Öğesi Ekleme

Aslında Yeni Pencere menü öğesini görmek için menüye geri eklemek zorunda kaldım:

  • Araçlar> Özelleştir ...> Komutlar> Komut Ekle ...
  • 'Menü Çubuğu'nu seçin, açılır menüden' Pencere 'menüsünü seçin
  • Komut Ekle ...> Pencere> Yeni Pencere> Tamam

Kayıt Defteri Değerini Geri Yükleme
Bunu not defterine kopyalayıp yapıştırın, bir .reg dosyası olarak kaydedin ve ilk ayarı geri yüklemek için dosyayı kayıt defterinize alın.

[HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ VisualStudio \ 10.0 \ Diller \ Dil Hizmetleri \ Temel]
"Yalnızca Tek Kod Penceresi" = dword: 00000001

'Yeni Pencere' menü öğesinin C # dosyaları için zaten etkinleştirilmiş olması gerektiğinden (VS 2010'da) C # dosyaları için kayıt defterini düzenlemenize gerek yoktur. Bunu sadece VB, HTML veya JScript için yapmanız gerekir. Bu MS Connect sorun raporuna göre, bununla ilgili herhangi bir sorun VB için düzeltilmiştir, özelliği etkinleştirmek için kayıt defteri girdisini kaldırmanız veya yeniden adlandırmanız yeterlidir.
Jason S

1
Bu da Visual Basic 2010 Express'te çalışıyor, bildirmekten mutluluk duyuyorum. Kayıt defteri anahtarı biraz farklıdır: [HKEY_LOCAL_MACHINE \ Software \ Wow6432Node \ Microsoft \ VBExpress \ 10.0 \ Diller \ Dil Hizmetleri \ Temel].
evilspoons

Benim için çalışmıyor. VS2010'u yeniden başlatmayı denedim, bilgisayarı yeniden başlattıktan sonra başka bir şans verecek ... (kayıt defteri girişlerinin nasıl okunduğunu / saklandığını / güncellendiğini bilen)
Mars Robertson

Ben sadece bu test (sanırım kayıt defteri anahtarım güncellemeler ya da bir şey tarafından üzerine yazılmış). Yeniden başlatmaya gerek duymadım. VS2010 çalışırken anahtarı değiştirdim, 'Yeni Pencere' hala gri renkte. Sonra VS2010 kapatıldı ve VS2010 açıldı ve 'Yeni Pencere' kullanılabilir.
Luke Hoffmann

3
VS2010'da, JScript için kayıt defteri bitinin çevrilmesi, bir JavaScript dosyası (yay) için ikinci bir sekmenin açılmasına izin verir, ancak her sekmede (boo) beyazlık dışında hiçbir şey görüntülenmez.
G-Wiz

18

Dosyayı açın (birden çok sekme grubu kullanıyorsanız, dosyanızın seçili olduğundan emin olun).

Menü PenceresiBöl (alternatif olarak, editörün dikey kaydırma çubuğunun hemen üzerinde bu küçük yumru var - tut ve aşağı sürükleyin)

Bu size aynı dosyanın iki (yatay) görünümünü verir. Herhangi bir düzenleme işleminin her iki görünüme de yansıyacağına dikkat edin.

İşiniz bittiğinde, ayırıcıyı alın ve sonuna kadar sürükleyin (veya menü penceresi → Bölmeyi Kaldır ).


2
(Sri: özür dilerim, görünümlerdeki gibi 'yatay' satırlar aynı hizada ... ya da bir diğerinin üzerinde). AFAIK, dikey (yan yana) görünümler mümkün değildir.

7
OP'nin okumadığı anlaşılıyor, burada bu şeyin farkında olduğunu belirtti.
Jason S



9

Luke'un yanıtı benim için işe yaramadı. 'Yeni Pencere' komutu, özelleştirme ayarlarında zaten listelenmiş, ancak kayıt defteri ayarını silmeye rağmen .js sekmeleri bağlam menüsünde görünmüyor.

Ben de kullandım:

Araçlar

Özelleştirmek...

Tuş takımı...

Pencere'yi seçmek için aşağı kaydırın.

Ve kısayol tuşlarına basıp atadım, Ctrl + Shift+W .

Bu benim için çalıştı.

==== DÜZENLE ====

'Çalışmış' çok güçlüydü. Klavye kısayolum aslında aynı JavaScript dosyasında başka bir sekme açıyor, ancak içeriği yararsız bir şekilde oluşturmuyor; sadece boş bir beyaz pencere! Daha iyi şansın olabilir.


3
Teşekkürler. Bu benim için VS2012 / VB.net için çalıştı. Açılan Araçlar - seçenekler - (ortam altında) klavye - açılır menüden visual basic 6'yı seçin - Komut listesinden Window.NewWindow'u seçin - ctrl + n, ctrl + w tuşlarına basın
CodingSlayer

8

Dosyanız açıkken komut penceresine gidin (menü GörünümüDiğer WindowsKomut penceresi veya sadece Ctrl+ Alt+ A)

Tür:

Window.NewWindow

Ve sonra

Window.NewVerticalTabGroup

benim için çalıştı (Visual Studio 2017).

Veya menüleri kullanarak:

Menü PenceresiYeni Pencere

Menü PenceresiYeni dikey musluk grubu


Lordlar bununla çalıştın oğlum. Teşekkür ederim.
Andrew

4

Pencere menüsü, Yeni Yatay / Dikey Sekme Grubu orada yapacağını düşünüyorum.


3
AFAI bakın, aynı dosyayı farklı sekme gruplarında
açamazsınız

3

Visual Studio 2013 ve VB.NET ile çalışırken oldukça kolay menü özelleştirmek ve "Yeni Pencere" komutunu eklemek bulundu - kayıt defteri ile uğraşmak gerek yok!

Tanrı sadece Microsoft'un neden bazı diller için komutu dahil etmemeyi seçtiğini biliyor ...?


Benim için kolayca çalıştı! Menü Araçları > Özelleştir . Ardından Komutlar sekmesinde, ilk açılır menüden Pencere'yi seçin, ardından Komut Ekle düğmesini tıklayın ve voilà! (Visual Studio 2019)
cyberponk

3

Daha yeni sürümler için (Visual Studio 2017 gibi)

  • Çoğaltmak istediğiniz pencereyi seçin.
  • Pencere sekmesine gidin ve listenin en üstündeki bölmeye tıklayın.
  • İşiniz bittiğinde, kapatmak için tekrar tıklayın.

3
İki yarıya bölünmüş bir pencere iki pencereyle aynı değildir.
Tipx

1

Aynı dosya dosya türleri için olamaz (Örnekteki .vb dosyaları için), dikey bir sekme grubunda yapabilirsiniz açılacak

  • Açık Visual Studio 2 farklı örneklerini
  • Her seferinde aynı dosyayı açın
  • Düzeninizi elde etmek için IDE pencerelerini yeniden boyutlandırın ve yan yana yerleştirin.

Bir durumda diske kaydederseniz, diğerine geçtiğinizde dosyayı yeniden yüklemeniz gerekir. Ayrıca her iki durumda da düzenleme yaparsanız ikinci kaydetme işleminde çözümlemeniz gerekir. Visual Studio her iki durumda da çeşitli seçeneklerle sizi uyarır. Yalnızca bir örnekte düzenleme yaparsanız hayatınızı biraz basitleştireceksiniz.


@Odrade - Beni her türlü dosya için çalışan doğru cevaba yönlendirebilir misin ...
Gishu

@ Jason Ok, ancak aynı dosyayı yan yana karşılaştırmaya birkaç kez açamayacağınızı belirtmek yine de yanlış. Bu, en azından .cs dosyaları için açıkça mümkündür.
Odrade

@Odrade Haklısın. Bunu düzeltmek için düzelttim. Önceki sürümlere dayalı yorumları kaldırmak isteyip istemediğinizi bildirmek.
Jason S

@Odrade Luke'un cevabını denemek için uğraştım VB kullanıcıları için iki VS örneği açmaktan çok daha iyi ve benim oyum var.
Jason S

Kayıt defteri düzenleme sadece boş bir ikinci pencere verir html dosyaları için tek çalışma geçici çözüm gibi görünüyor
Chris F Carroll

1

Visual Studio 2005'in bir kopyası yok, ancak bu işlem Visual Studio 2008 üzerinde çalışıyor:

  1. Xyz.cpp dosyasını başka bir dosyayla birlikte açın.
  2. Sekme başlığına sağ tıklayın ve yeni dikey sekme grubu seçin.
  3. İlk sekme grubundaki diğer dosyaya sol tıklayın.
  4. Çözüm gezgini aracılığıyla xyz.cpp dosyasını tekrar açın.

Artık ayrı dikey sekme gruplarında iki dosya örneğiniz olmalıdır.


Benim VS2K5 ve VS2K8 üzerinde sadece benim için ikinci sekmesinde orijinal örnekleri gösterir. Çözüm Gezgini'nde, Dosya Gezgini'nden veya Dosya | Menüyü açın.
Simeon Pilgrim

@Simeon - Başka bir dosya açık değilse (1. adımın 2. kısmı) olur
si618

Orijinal dosyanın diğer sekme grubunda açıldığını bilir. Belki bu tekrarlanmasına izin verdiği dosyalar ile ilgilidir.
16'da neoswf

0

Orijinal cevapta amaçlanan sonucu üretebilecek bir hack buldum.

İstediğiniz dosyayı kaynak denetiminde iki pencerede varsa, dosyayı sağ tıklatıp karşılaştır'ı seçebilir,

Karşılaştırırsanız, dosyanızın içeriğini gösteren yeni bir pencere denir.

Bu elbette ideal değildir çünkü fark penceresi metni kirleten fark renklerine sahip olacaktır. Not: Açmak istediğiniz dosyayı boş dosyayla karşılaştırabilir ve ardından pencereyi çok çirkin bir yeşil arka planda görürsünüz.

Bu mükemmel değil, bir hack, ama aynı dosyayı iki pencerede bulmanın tek yolu buydu.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.