Visual Studio:ソリューションエクスプローラーを現在のファイルにスクロールするためのショートカット


82

ソリューションエクスプローラーで現在のファイルを自動的に追跡するオプションを求めいません。これはこの質問で回答されており、動作が嫌いなため、このオプションをオフにしています。

ソリューションエクスプローラーで現在編集しているファイルにジャンプするためのショートカット(またはマクロ、または....)が欲しいのですが。


重複する可能性のあるstackoverflow.com/a/55025095/661584
MemeDeveloper

回答:


107

VS 2013には、組み込みのキーボードショートカット(CTRL + \、S)があります。

  1. Ctrlキーを押しながら円記号を押します
  2. 両方のキーを離します
  3. Sキーを押す

または、下の画像で強調表示されているボタンをクリックします。

アクティブなドキュメントと同期する

デフォルトの組み合わせが気に入らない場合は、キーボードショートカットカスタマイズするオプションもあります:)


27
このキーボードショートカットはSolutionExplorer.SyncWithActiveDocument([ツール]-> [オプション]-> [環境]-> [キーボード])と呼ばれます
Laoujin 2015年

27
デフォルトのショートカットは、私のVSではCtrl + [、Sです。
ローマンO

CTRL +バックスラッシュは実際には機能しませんでした。参照:stackoverflow.com/a/37158527/2874896
Jim Aho

Track Active Item in Solution Explorer最初の機能を無効にすることをお勧めします。そのため、同期ソリューションエクスプローラーは、コードファイルをスウィッチするときに「ジャンプ」するのではなく、このショートカットを押したときにのみ発生します。
phifi 2017

驚くばかり。大きな助け:)
セバスチャン2018

70

Visual Studio 2015、2017、および2019では、Ctrl+[を押してからを押すことができますs

これにより、ソリューションエクスプローラーで現在編集されているファイルが強調表示されます。

これは、次のキーボードコマンドを使用して構成できます:SolutionExplorer.SyncWithActiveDocument

再構成するには、[ツール]-> [オプション]-> [環境]-> [キーボード]に移動します


11
Visual Studio 2015では、ReSharperを使用して、「Shift」+「Alt」+「L」を押して、ソリューションエクスプローラーで編集中の現在のファイルを強調表示できます。
Jeremy Paskali 2016年

Visual Studio 2013アップデート5では、これも正しい組み合わせです。
FrankyHollywood 2016

@JeremyPaskaliありがとうございました。私がresharperを使用しているので、それは私が行くためのより簡単な方法です:)。
c4d 2016

1
@ JeremyPaskali-回答としてコメントを追加できますか?私もReSharperを使用していますが、このキーコンボだけが私のために機能しました。
フィリップピトル2017年

1
ショートカットを別のものに再マップしたい人のために、2019年にコマンドは「SolutionExplorer.SyncWithActiveDocument」と呼ばれます。
ギャリソンベッカー

27

私の知る限り、VS2012以前にはそのようなオプションはありません。

VS 2012では、「アクティブドキュメントと同期」オプションが導入されました。説明と画面はこのブログにあります(ページ中央の「アクティブドキュメントと同期」までスクロールしてください)。


1
これは質問に正確に答えるため、正解としてマークする必要があります。
Umar Farooq Khawaja 2013年

20
現在、Resharperを使用しています。これを正確に行う機能があります。デフォルトのショートカット:Shift + Alt + L
Laoujin 2014

1
Resharperコマンドをありがとう、私もそれを探していました。
bastijn 2014

2
これは間違いなく答えであり、ReSharperのようなサードパーティのツールは必要ありません。Ctrl + '[' then's 'または:' Ctrl 'と左角括弧を押してから' s '
Antony Booth

6

ソリューションエクスプローラーで現在編集しているファイルを見つけるには:

Ctrl + W + S

以前使用Shift + Alt + Lしていましたが、何らかの理由で機能しなくなりました。

他の提案(Ctrl+\,SおよびCtrl+[,SおよびCtrl + `+ S)は、VS2015では機能しません。私はresharperを使用せず、単純なショートカットが利用可能なときにマクロを使用するのは好きではありません。


VS2017で私のために働いたのはこれだけです。ありがとう。
フェリペコスタグアルベルト

5

Visual Studio 2015では、ReSharperを使用して、Shift+ Alt+Lを押して、ソリューションエクスプローラーで編集中の現在のファイルを強調表示できます。


私もReSharperを使用していますが、これが私にとって有効な唯一のキーボードの組み合わせでした。たぶん、ReSharperはVSのデフォルトをオーバーライドしますか?
フィリップピトル2017年

このショートカットを設定できるキーボードコマンドの名前を知っていますか?
キアランギャラガー

3

VS2010の場合、私はこのマクロを見つけて、私のために働きます:

Imports System
Imports EnvDTE
Imports EnvDTE80
Imports EnvDTE90

Public Module Utilities
    Public Sub TrackProjectItem()
        Dim solution As Solution2 = DTE.Solution
        If Not solution.IsOpen OrElse DTE.ActiveDocument Is Nothing Then Return

        solution.FindProjectItem(DTE.ActiveDocument.FullName).ExpandView()

        Dim FileName As String = DTE.ActiveDocument.FullName

        Dim SolutionExplorerPath As String
        Dim items As EnvDTE.UIHierarchyItems = DTE.ToolWindows.SolutionExplorer.UIHierarchyItems
        Dim item As Object = FindItem(items, FileName, SolutionExplorerPath)

        If item Is Nothing Then
            MsgBox("Couldn't find the item in Solution Explorer.")
            Return
        End If

        DTE.Windows.Item(Constants.vsWindowKindSolutionExplorer).Activate()
        DTE.ActiveWindow.Object.GetItem(SolutionExplorerPath).Select(vsUISelectionType.vsUISelectionTypeSelect)
    End Sub

    Public Function FindItem(ByVal Children As UIHierarchyItems, ByVal FileName As String, ByRef SolutionExplorerPath As String) As Object
        For Each CurrentItem As UIHierarchyItem In Children
            Dim TypeName As String = Microsoft.VisualBasic.Information.TypeName(CurrentItem.Object)
            If TypeName = "ProjectItem" Then
                Dim projectitem As EnvDTE.ProjectItem = CType(CurrentItem.Object, EnvDTE.ProjectItem)
                Dim i As Integer = 1
                While i <= projectitem.FileCount
                    If projectitem.FileNames(i) = FileName Then
                        SolutionExplorerPath = CurrentItem.Name
                        Return CurrentItem
                    End If
                    i = i + 1
                End While
            End If

            Dim ChildItem As UIHierarchyItem = FindItem(CurrentItem.UIHierarchyItems, FileName, SolutionExplorerPath)
            If Not ChildItem Is Nothing Then
                SolutionExplorerPath = CurrentItem.Name + "\" + SolutionExplorerPath
                Return ChildItem
            End If
        Next
    End Function
End Module

元のソースはこちら


3

Visual Studio 2010/2012では、この拡張機能を使用できます(リンク)。ソリューションエクスプローラーのツールバーとコードコンテキストメニューで同期するオプションを追加します。


「リンク」は、この同じページのXDを開く
メイト

ドキュメントタブを右クリックすると、コンテキストメニューに新しいメニュー項目「ソリューションエクスプローラーで検索」が表示されます。このメニューは、「フルパスをコピー」メニュー項目と「含まれているフォルダを開く」メニュー項目の間に配置されます。
S.Serpooshan 2014


0

私のキーボードで私は押さなければなりませんでした:

Ctrl + ` + S

中央の記号は、バックスペースのすぐ左にあるキーであることに注意してください。

Visual Studio2015を使用します。


使用しているレイアウトを言っておくと役立つかもしれません。ただし、キーの場所に関する情報は役に立ちます。
bugybunny 2018年

0

質問が正しければ、[ツール]-> [オプション]-> [プロジェクトとソリューション]-> [一般]に移動し、[ソリューションエクスプローラーでアクティブアイテムを追跡する]オプションをオンにします。

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