Visual Studio: Lối tắt để cuộn trình khám phá giải pháp đến tệp hiện tại


81

Tôi không yêu cầu tùy chọn tự động theo dõi tệp hiện tại trong trình khám phá giải pháp. Điều này đã được trả lời trong câu hỏi này và tôi đã tắt tùy chọn này vì tôi ghét hành vi đó.

Tôi muốn có một phím tắt (hoặc macro, hoặc ....) để chuyển đến tệp mà tôi hiện đang chỉnh sửa trong trình khám phá giải pháp.


Câu trả lời:


107

Trong VS 2013 có một phím tắt tích hợp sẵn (CTRL + \, S)

  1. Nhấn CTRL + dấu gạch chéo ngược
  2. Thả cả hai phím
  3. Nhấn phím S

Hoặc nhấp vào nút được đánh dấu trong hình ảnh bên dưới.

Đồng bộ hóa với tài liệu đang hoạt động

Một cũng có tùy chọn để tùy chỉnh phím tắt nếu bạn không thích sự kết hợp mặc định :)


26
Phím tắt này được gọi là SolutionExplorer.SyncWithActiveDocument(Tools -> Options -> Môi trường -> Bàn phím)
Laoujin

27
Phím tắt mặc định là Ctrl + [, S trong VS. của tôi.
Roman O

CTRL + dấu gạch chéo ngược thực sự không hoạt động với tôi, hãy xem: stackoverflow.com/a/37158527/2874896
Jim Aho

Bạn có thể muốn hủy kích hoạt Track Active Item in Solution Explorerlần đầu tiên, vì vậy việc đồng bộ hóa trình khám phá giải pháp sẽ chỉ xảy ra khi nhấn phím tắt này thay vì "nhảy" xung quanh khi xoay các tệp mã.
phifi 20/02/17

Tuyệt vời. giúp đỡ rất nhiều :)
sebastian

70

Trong Visual Studio 2015, 2017 và 2019, bạn có thể nhấn Ctrl+ [và sau đó s.

Thao tác này sẽ làm nổi bật tệp hiện đang được chỉnh sửa trong Solution Explorer.

Điều này có thể được cấu hình thông qua lệnh bàn phím sau: SolutionExplorer.SyncWithActiveDocument

Để cấu hình lại, điều hướng đến Công cụ -> Tùy chọn -> Môi trường -> Bàn phím


11
Trong Visual Studio 2015, với ReSharper, tôi có thể nhấn "Shift" + "Alt" + "L" để đánh dấu tệp hiện tại đang được chỉnh sửa trong Solution Explorer.
Jeremy Paskali

Trong Visual Studio 2013 bản cập nhật 5, đây cũng là sự kết hợp chính xác.
FrankyHollywood,

@JeremyPaskali Cảm ơn bạn rất nhiều về điều này. Khi tôi sử dụng bộ sạc lại, đó là cách dễ dàng hơn cho tôi :).
C4d

1
@JeremyPaskali - Bạn có thể thêm nhận xét của mình làm câu trả lời không? Tôi cũng đang sử dụng ReSharper và tổ hợp phím này là tổ hợp duy nhất phù hợp với tôi.
Philip Pittle

1
Đối với những người muốn ánh xạ lại lối tắt thành một thứ khác, vào năm 2019, lệnh được gọi là "SolutionExplorer.SyncWithActiveDocument".
Garrison Becker

27

Theo như tôi biết không có tùy chọn như vậy trước VS 2012.

Trong VS 2012, tùy chọn "Sync with Active Document" đã được giới thiệu. Bạn có thể tìm thấy mô tả và màn hình trên blog này (cuộn đến "Đồng bộ hóa với Tài liệu Hoạt động" ở giữa trang).


1
Đây phải được đánh dấu là câu trả lời đúng vì nó trả lời chính xác câu hỏi.
Umar Farooq Khawaja

20
Hiện chúng tôi đang sử dụng Resharper. Nó có một tính năng để làm chính xác điều này. Phím tắt mặc định: Shift + Alt + L
Laoujin

1
Cảm ơn lệnh Resharper, tôi cũng đang tìm kiếm lệnh đó.
bastijn

2
Đây chắc chắn là câu trả lời và không cần đến các công cụ của bên thứ 3 như ReSharper. Ctrl + '[' rồi 's' Hoặc: Nhấn 'Ctrl' và Left Quảng trường Bracket, sau đó 's'
Antony Booth

6

Để tìm tệp bạn hiện đang chỉnh sửa trong Solution Explorer:

Ctrl + W + S

Trước đây tôi đã sử dụng Shift + Alt + L, nhưng vì một số lý do, điều này không còn hoạt động.

Các đề xuất khác ( Ctrl+\,SCtrl+[,Svà Ctrl + `+ S) không hoạt động đối với tôi trong VS2015. Tôi không sử dụng trình sạc lại và không thích sử dụng macro khi có các phím tắt đơn giản.


Đây là cái duy nhất phù hợp với tôi trong VS 2017, cảm ơn.
Felipe Costa Gualberto

5

Trong Visual Studio 2015, với ReSharper, tôi có thể nhấn Shift+ Alt+ Lđể đánh dấu tệp hiện tại đang được chỉnh sửa trong Solution Explorer.


Tôi cũng đang sử dụng ReSharper và đây là tổ hợp bàn phím duy nhất phù hợp với tôi. Có thể ReSharper ghi đè các mặc định VS?
Philip Pittle,

Bạn có biết tên của lệnh bàn phím mà phím tắt này có thể được cấu hình không?
Ciaran Gallagher

3

Đối với VS2010, tôi đã tìm thấy macro này và hoạt động cho tôi:

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

Nguồn gốc tại đây


3

Trong Visual Studio 2010/2012, bạn có thể sử dụng phần mở rộng này ( liên kết ). Nó thêm tùy chọn để đồng bộ hóa trên thanh công cụ Solution Explorer và menu ngữ cảnh mã.


"liên kết" mở cùng trang này XD
Mate

Nó hiển thị một mục menu mới "Find In Solution Explorer" vào menu ngữ cảnh khi bạn nhấp chuột phải vào tab tài liệu của chúng tôi. trình đơn này nằm giữa các mục trình đơn "Sao chép đường dẫn đầy đủ" và "Mở thư mục chứa".
S.Serpooshan


0

Trên bàn phím của mình, tôi phải nhấn:

Ctrl + ` + S

Hãy lưu ý rằng dấu hiệu ở giữa là phím ngay bên trái của khoảng trống.

Sử dụng Visual Studio 2015.


Nó có thể hữu ích nếu bạn cho biết bạn đang sử dụng bố cục nào. Mặc dù vậy, thông tin về nơi đặt chìa khóa rất hữu ích.
bugybunny

0

Nếu tôi hiểu đúng câu hỏi của bạn, bạn có thể đi tới Công cụ -> Tùy chọn -> Dự án và Giải pháp -> Chung và chọn tùy chọn "Theo dõi Mục Hoạt động trong Giải pháp Explorer".

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.