1つのVisual Studioセッションでファイルの2つのインスタンスを開く


555

ファイルxyz.cppがあります。このファイルの2つのインスタンスをVisual Studioで開きます(Visual Studio 2005を使用しています)。なぜそうしたいのですか?同じファイルの2つのセクションを並べて比較したい。私は次のような回避策を知っています:

  1. ファイルのコピーを作成します。しかし問題は、それがエレガントではなく、これに直面するたびにコピーを作成したくないということです。

  2. ウィンドウを2つに分割できます。水平にしか分割できないという分割の問題。水平分割の結果、画面の右半分が空白になります。

縦に分割したり、同じファイルの2つのインスタンスを開くことができた場合、比較できるコードの行数が増加します。


12
ファイルの一部を単に比較したい場合は、ウィンドウを使用できます。ファイルを中央から水平に分割する分割。
vexe 14

@vexeパーフェクト。まさに私が必要としたもの。ウィンドウを分割し、両方とも同じファイルを編集します。
Vincent P

3
最高投票の回答を受け入れなかった理由はありますか?
cp.engr 2017年

1
@ cp.engr、彼のプロフィール:「最後に見たのは2009年12月6日12:41」。回答の多いユーザーが回答を承認済みとしてマークできないのは残念です。
ジョーンズ博士、

回答:


904

方法は次のとおりです...

  1. 2つのコピーを作成するタブを選択します
  2. メニューからメニュー「ウィンドウ」「新規ウィンドウ」を選択します。
  3. 新しいタブを右クリックして、[ 新しい垂直タブグループ ]を選択します。

* WindowメニューにNew Windowがリストされていない場合は、Visual Studio 2017でもコマンドが存在することに注意してください。メニューツールカスタマイズコマンドを使用して、ウィンドウメニューに追加します。。。その時点で、[ 新しいウィンドウ]コマンドを配置する場所を決定し、[ コマンドの追加]を選択します。

「2018年7月30日」に更新

Visual Studio Codeバージョン1.25.1以降

方法1

サイドパネル(エクスプローラー)でファイルを左クリックして押すだけです。 Ctrl +Enterです。

方法2

Visual Studio Codeのサイドパネル(エクスプローラー)でファイルを右クリックし、最初に開いているオプションを選択します。


50
セカンドモニターのように利用可能な画面スペースがある場合は、新しいタブをVisual Studioの外にドラッグして、たとえば、セカンドモニターに表示することもできます。
Artur Carvalho

4
これは特定のファイルタイプに対してのみ実行できます。たとえば、同じ.xamlファイルで2つのウィンドウを開くことはできません。これは残念なことです。それが私がやりたいことです。
cplotts、2011年


2
WPFのXAMLの場合、[新しいウィンドウ]オプションはありません。
Preza8 2015年

2
が、私のVS 2010のショートカットで、このメソッドの動作は、[Ctrlキー]が[SHIFT] [N] [ファイル]> [新規作成]> [プロジェクトに結合させた
user1556435

67

Visual Basic、HTML、JScript、およびRDL式のWindow > New Window場合、PaulBの回答に記載されているオプションは無効になっています。ただし、メニュー項目を有効にするオプションをレジストリで変更できます。

他のすべての言語は単一のコードウィンドウに制限されないため、レジストリを編集せずにPaulBの回答を使用できます。

Windowsレジストリで新しいウィンドウを有効にします。[ 1 ] [ 2 ]

  1. 次のレジストリキーに移動します。この例はBasic(Visual Basic)用ですが、キーはHTML、JScript、およびRDL式にもあります。

    • 64ビットOS: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\10.0\Languages\Language Services\Basic
    • 32ビットOS: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\10.0\Languages\Language Services\Basic
  2. Single Code Window Onlyを見つけて、次のいずれかを実行します。

    • 0に設定します
    • 値の名前を変更する
    • 値を削除します(注意してください!)

これにより、[新しいウィンドウ]メニュー項目が有効になりますが、メニューに表示されない場合があります。

メニュー項目を追加する

新しいウィンドウメニュー項目を実際に表示するには、メニューに追加し直す必要がありました。

  • ツール>カスタマイズ...>コマンド>コマンドの追加...
  • 「メニューバー」を選択し、ドロップダウンで「ウィンドウ」メニューを選択します
  • コマンドの追加...>ウィンドウ>新しいウィンドウ> OK

レジストリ値の復元
これをメモ帳にコピーアンドペーストし、.regファイルとして保存し、ファイルをレジストリにインポートして、初期設定を復元します。

[HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ VisualStudio \ 10.0 \ Languages \ Language Services \ Basic]
「単一コードウィンドウのみ」= dword:00000001

「VS 2010」では、「新しいウィンドウ」メニュー項目がC#ファイルに対してすでに有効になっているため、C#ファイルのレジストリを編集する必要はありません。これを行う必要があるのは、VB、HTML、またはJScriptの場合だけです。このMSコネクトの問題レポートによると、これに関する問題はVBで修正されています。この機能を有効にするには、レジストリエントリを削除するか名前を変更するだけです。
Jason S、

1
これはVisual Basic 2010 Expressでも機能します。報告させていただきます。レジストリキーは少し異なります:[HKEY_LOCAL_MACHINE \ Software \ Wow6432Node \ Microsoft \ VBExpress \ 10.0 \ Languages \ Language Services \ Basic]。
evilspoons

うまくいきません。VS2010を再起動しようとすると、コンピューターの再起動後にもう一度チャンスが与えられます...(レジストリエントリの読み取り/保存/更新方法を知っている人)
Mars Robertson

私はこれをテストしました(レジストリキーが更新プログラムなどで上書きされたと思います)。再起動は必要ありませんでした。VS2010の実行中にキーを変更しましたが、「新しいウィンドウ」はまだグレー表示されています。次に、VS2010を閉じてVS2010を開き、「新しいウィンドウ」を使用できます。
ルークホフマン

3
VS2010では、JScriptのレジストリビットを反転すると、JavaScriptファイル用に2番目のタブを開くことができます(そうです)が、各タブには白さ以外は何も表示されません(ブー)。
G-Wiz

18

ファイルを開きます(複数のタブグループを使用している場合は、ファイルが選択されていることを確認してください)。

メニューウィンドウ分割 (または、エディターの垂直スクロールバーのすぐ上にこの小さなナブがあります-つかんで下にドラッグします)

これにより、同じファイルの2つの(水平)ビューが表示されます。編集アクションは両方のビューに反映されることに注意してください。

完了したら、スプリッターをつかんで上方向にドラッグします(またはメニューウィンドウスプリットの削除)。


2
(Sri:申し訳ありませんが、ビューの行と同じように「水平」になっています...または、1つのビューが他のビューの上にあります)。私の知る限り、垂直(横並び)のビューは不可能です。

7
OPを読んでいないように見えますが、彼はこのこと自体を認識していると述べています。
Jason S



9

ルークの答えはうまくいきませんでした。「新しいウィンドウ」コマンドはすでにカスタマイズ設定にリストされていましたが、レジストリ設定を削除したにもかかわらず、.jsタブのコンテキストメニューには表示されませんでした。

だから私は使用しました:

ツール

カスタマイズ...

キーボード...

下にスクロールしてWindow.NewWindowを選択します。

そして、ショートカットキーCtrl+ Shift+ を押して割り当てましたW

それでうまくいきました。

====編集====

まあ、「働いた」は強すぎた。私のキーボードショートカットは確かに同じJavaScriptファイルの別のタブを開きますが、どちらかと言えばコンテンツをレンダリングしません。空の白いウィンドウです。運がいいかもしれません。


3
ありがとう。これはVS2012 / VB.netでは私にとってはうまくいきました。開かれたツール-オプション-(環境下)キーボード-ドロップダウンからVisual Basic 6を選択-コマンドリストからWindow.NewWindowを選択-Ctrl + n、Ctrl + Wを押した
CodingSlayer

8

開いたファイルでは、コマンドウィンドウに移動(メニュー表示その他のWindowsコマンドウィンドウ、または単にCtrl+ Alt+ A

タイプ:

Window.NewWindow

その後

Window.NewVerticalTabGroup

私のために働いた(Visual Studio 2017)。

またはメニューを使用する:

メニューウィンドウ新しいウィンドウ

メニューウィンドウ新しい垂直タップグループ


あなたは主人が私の息子と一緒に働いた。ありがとうございました。
Andrew

4

ウィンドウメニュー、そこに新しい水平/垂直タブグループができると思います。


3
AFAI参照、同じタブを別のタブグループで開くことはできない
Gishu

3

Visual Studio 2013とVB.NETを使用すると、メニューを簡単にカスタマイズして「新しいウィンドウ」コマンドを追加できることがわかりました。レジストリをいじる必要はありません。

神は、マイクロソフトが一部の言語のコマンドを含めないことを選択した理由を知っているだけです...?


私のために簡単に働きました!メニューツール > カスタマイズ。次に、[ コマンド ]タブで、最初のドロップダウンから[ ウィンドウ ]を選択し、[ コマンドの追加 ]ボタンをクリックしてください。(Visual Studio 2019)
cyberponk

3

新しいバージョン(Visual Studio 2017など)

  • 複製するウィンドウを選択します。
  • ウィンドウのタブに移動し、リストの上部にある分割をクリックします。
  • 完了したら、もう一度クリックしてオフにします。

3
2つに分割されたウィンドウは、2つのウィンドウと同じではありません。
Tipx

1

垂直タブグループで同じファイルを開くことができないファイルタイプ(.vbファイルなど)では、次のことができます。

  • Visual Studioの2つの異なるインスタンスを開く
  • 各インスタンスで同じファイルを開く
  • IDEウィンドウのサイズを変更し、並べて配置してレイアウトを作成します。

ただし、1つのインスタンスでディスクに保存する場合は、別のインスタンスに切り替えるときにファイルをリロードする必要があります。また、両方のインスタンスで編集を行う場合は、2回目の保存時に解決する必要があります。Visual Studioは、どちらの場合もさまざまなオプションでプロンプトを表示します。1つのインスタンスのみで編集すると、生活が少し簡素化されます。


@Odrade-すべての種類のファイルで機能する正しい答えを教えてください...
Gishu

@Jasonわかりましたが、同じファイルを複数回開いて並べて比較することはできないと述べるのはまだ正しくありません。これは明らかに、少なくとも.csファイルでは可能です。
Odrade、2011年

@Odradeあなたは正しいです。それを修正するために編集しました。以前のバージョンに基づいてコメントを削除する場合に備えて通知します。
Jason S

@Odradeはルカの答えを試してみることにしましたVBユーザーのためにVSの2つのインスタンスを開くよりもはるかに優れており、私の賛成票を持っています。
ジェイソンS

これは、レジストリ編集が空白の2番目のウィンドウを表示するhtmlファイルの唯一の有効な回避策のようです
Chris F Carroll

1

Visual Studio 2005のコピーはありませんが、このプロセスはVisual Studio 2008で機能します。

  1. 他のファイルと一緒にxyz.cppを開きます。
  2. タブヘッダーを右クリックして、新しい垂直タブグループを選択します。
  3. 最初のタブグループにある他のファイルを左クリックします。
  4. ソリューションエクスプローラーでxyz.cppを再度開きます。

これで、ファイルの2つのインスタンスが別々の垂直タブグループにあるはずです。


私のVS2K5とVS2K8では、2番目のタブに元のインスタンスが表示されます。これは、ソリューションエクスプローラーをダブルクリックした場合、ファイルエクスプローラーからドラッグアンドドロップした場合、またはファイル| メニューを開きます。
Simeon Pilgrim

@Simeon-別のファイルが開かれていない場合に発生します(ステップ1の2番目の部分)
si618

元のファイルが他のタブグループで開かれていることがわかります。おそらくこれは、複製を許可するファイルに再び関係しています。
neoswf 2011年

0

私は、元の回答で意図された結果を生成する可能性のあるハックを思いつきました。

ソースコントロールの2つのウィンドウに必要なファイルがある場合は、ファイルを右クリックして[比較]を選択し、

比較すると、新しいウィンドウCalled diffが表示され、ファイルの内容が表示されます。

もちろん、これは理想的ではありません。diffウィンドウには、テキストを汚染するdiffカラーがあるからです。注:開くファイルと空のファイルを比較すると、ウィンドウが非常に醜い緑色の背景になります。

これは完璧ではありません。これはハックですが、2つのウィンドウに同じファイルが実際にあることがわかった唯一の方法でした。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.