วิธีค้นหาไฟล์ใน Solution Explorer ใน Visual Studio 2010


172

ฉันมีทางออกที่ยิ่งใหญ่กับหลายโครงการ บางครั้งฉันต้องการที่จะนำทางไปยังไฟล์ในExplorer โซลูชัน การใช้คุณสมบัติ ' นำทางไปยัง ' ของ VS 2010 ฉันสามารถเปิดไฟล์ใดก็ได้ตามชื่อใน Visual Studio 2010 แต่ฉันต้องการเลือกไฟล์ในโซลูชัน Explorerหรือไม่


4
คำถามเกี่ยวกับ VS2010 แต่ในกรณีที่มีคนดู VS2013: ลองดู Ctrl-; สำหรับการค้นหาใน Solution Explorer หรือ Ctrl- สำหรับคุณลักษณะ VS2012 / 13 "นำทางไปยัง"
จอห์น

1
สำหรับวิธีดั้งเดิมของ VS 2012 ขึ้นไปลองดูคำตอบของ Aaron Carlson ด้านล่าง
Derek Morrison

คำตอบ:


198

มีตัวเลือกในการติดตามรายการที่เปิดใช้งาน (เปิดและดู) ในตัวสำรวจโซลูชัน หากไฟล์อยู่ในมุมมองไฟล์ในตัวสำรวจโซลูชันจะถูกเลือก

เครื่องมือ -> ตัวเลือก -> โครงการและโซลูชั่น -> ติดตามรายการที่ใช้งานอยู่ในโซลูชัน Explorer


33
การตั้งค่านี้ทำให้โปรเจ็กต์และโหนดโซลูชันขยายอย่างต่อเนื่องเมื่อฉันเปิดไฟล์ หลังจากทำงานในโครงการขนาดใหญ่กว่า 15 นาทีฉันมีโหนดจำนวนมากที่ขยายออกจนโซลูชัน explorer ไม่สามารถใช้งานได้ DPack solution ดีกว่า IMO
Karel Kral

@ karel-kral ฉันได้เพิ่มคำตอบที่ใช้แมโครเพื่อสลับการตั้งค่านี้ซึ่งแก้ปัญหาโหนดขยายตัวนี้
Martin Hollingsworth

ตัวแก้ไข resharper หรือ dpack ที่แสดงที่นี่รับปัญหามาร์ตินกล่าวถึงและทำให้คำตอบนี้ไม่ใช่ตัวเลือกที่ต้องการถ้าคุณมีอย่างใดอย่างหนึ่งที่มีให้คุณ
Rob Sedgwick

2
สำหรับ VS2012 + @ Aaron คำตอบที่ดีที่สุด ไม่มีสิ่งที่ติดตั้ง Ctrl + [, s
BritishDeveloper

3
เขาบอกว่าเขาเพียงต้องการติดตามไฟล์ "บางครั้ง" ไม่ใช่ตลอดเวลา คำตอบของแอรอนคาร์ลสันควรทำเครื่องหมายเป็นคำตอบที่ถูกต้อง
RayLoveless

150

VS2012 SolutionExplorer.SyncWithActiveDocumentเพิ่มคำสั่งใหม่ที่เรียกว่า ทางลัดเริ่มต้นสำหรับ c # คือCtrl+ [,S

คำสั่งนี้จะนำทางไปยังไฟล์ที่ใช้งานอยู่ใน Solution Explorer

นอกจากนี้ดูเหมือนว่าคุณจะต้องปิดตัวเลือก "ติดตามรายการที่ใช้งานในโซลูชัน Explorer"


4
การตรวจสอบครั้งใหญ่นี้ไม่ได้ไปสู่ ​​Visual Studio 6.0 หรือแม้กระทั่งก่อนหน้า WTF
Almo

3
ขอบคุณ! ในของฉันVS2013 , Ctrl+ [, Sเป็นชุดเริ่มต้นที่จะตรวจสอบไฟล์และSolutionExplorer.SyncWithActiveDocumentไม่ได้มีการกำหนดค่า
hwcverwe

1
@ krypru ฉันใช้ VS2015 มาระยะหนึ่งแล้วมันก็ใช้ได้ดีสำหรับฉัน บางทีมันอาจไม่ได้ถูกแมปกับทางลัดเดียวกันในสภาพแวดล้อมของคุณ?
แอรอนคาร์ลสัน

2
FYI ไม่จำเป็นต้องจำปุ่มทางลัด: โซลูชัน Explorer (ฉันอยู่ใน VS 2015) มีไอคอนที่ด้านบน (ลูกศรคู่) ที่ "ซิงค์กับเอกสารที่ใช้งานอยู่"
ToolmakerSteve

2
VS 2017 เพิ่มการจับคู่แป้นพิมพ์ "ReSharper" ภายใต้เครื่องมือ -> ตัวเลือก -> สภาพแวดล้อม -> แป้นพิมพ์ แมปฟังก์ชันการทำงาน VS ในตัวกับทางลัด ReSharper ที่เทียบเท่า เมื่อคุณตั้งค่านี้คุณสามารถใช้Shift+ Alt+ Lทางลัด
Andacious

121

Shift+ Alt+ Lจะค้นหาไฟล์ปัจจุบันใน Solution Explorer ใน Visual Studio 2008+ ที่ติดตั้ง ReSharper


4
เมื่อคุณติดตามคุณไม่จำเป็นต้องใช้ทางลัดนี้
Davut Gürbüz

5
มันเป็นคำสั่ง Reshaper ทำงานได้กับฉันด้วย Visual Studio 2010 ที่ติดตั้ง ReSharper
Radim Cernej

+1; @ DavutGürbüzบางครั้งคุณจำเป็นต้องใช้สิ่งนี้เพื่อเริ่ม Visual Studio 2012 เพื่อเริ่มการติดตามอัตโนมัติอีกครั้ง ทุกครั้งในบางครั้ง (แม้จะมีช่องทำเครื่องหมาย "... ติดตามใช้งานอยู่ ... " กำลังตรวจสอบ Visual Studio 2012 หยุดการติดตามทางลัด ReSharper นี้จะเปิดใช้งานใหม่โดยไม่ต้องรีสตาร์ท Visual Studio
Jeroen Wiert Pluimers

@JeroenWiertPluimers ฉันเห็น ฉันใช้ส่วนขยาย DPack แล้ว มันเป็น lite มากและใช้งานง่าย คุณเพียงคลิกขวาที่แท็บไฟล์และเลือกค้นหาบน Solution Explorer ฉันขอแนะนำอย่างยิ่ง ใช้งานได้กับ VS ทุกรุ่น ReSharper ก็ดี แต่เราไม่ชอบ เพราะเราไม่ได้ใช้คุณสมบัติส่วนใหญ่ของมัน มันทำให้ VS หนักกว่า การติดตามทำให้นักสำรวจโซลูชันยุ่งเหยิง DPack นั้นดีที่สุด stackoverflow.com/a/4747759/413032
Davut Gürbüz

3
ไม่จำเป็นต้องเปิดใช้งานการติดตามเพื่อให้ Shift + Alt + L ทำงานได้ อย่างน้อยก็ไม่ใช่ใน VS 2010 ที่ฉันใช้อยู่
Tor Haugen

36

ฉันพบว่าตัวเลือกแทร็กน่ารำคาญเล็กน้อย

ฉันชอบที่จะใช้DPack มันมีการ "ค้นหาในงานโซลูชัน Explorer" การดำเนินการรวมทั้งคุณสมบัติอื่น ๆ (บางคนที่มีประสิทธิภาพน้อยลงใน VS2010 เช่นเบราว์เซอร์ของพวกเขา) และได้ฟรี

โปรดทราบว่าReSharperยังมีคุณสมบัติการค้นหาที่ใช้งานได้ดีกว่า DPack's (ในบางกรณีการค้นหา DPack จะไม่ทำงานหากไฟล์ถูกยุบหลังโฟลเดอร์) แต่คุณไม่ต้องการซื้อ ReSharperสำหรับคุณลักษณะนี้เท่านั้น


วิธีแก้ปัญหาที่ไม่ยุ่งยากที่สุด ("Track Active Item" น่ารำคาญและ ReSharper ไม่ฟรี)
Ian Kemp

@ Yankemp มันเป็นเรื่องของรสนิยม IMO การติดตามนั้นน่ารำคาญเพราะ: 1. บางครั้งฉันชอบต้นไม้ sln ที่ให้ความสำคัญกับโหนดใดโหนดหนึ่ง 2. หลังจากนั้นไม่นานต้นไม้ sln ก็จะถูกขยายอย่างสมบูรณ์
HuBeZa

28

Brian Schmittมีไฟล์ Locateที่ยอดเยี่ยมใน Solution Explorer - Visual Studio Macro post สำหรับสิ่งนี้ แมโครนั้นง่ายและรวดเร็วมาก โดยทั่วไปจะสลับการตั้งค่า

Tools->Options->Projects and Solutions->Track Active Item in Solution Explorer

ดังนั้นไฟล์ปัจจุบันจะถูกเลือกใน Solution Explorer แต่เนื่องจากไม่ได้ถูกทิ้งไว้คุณจะไม่หงุดหงิดโดยโหนด Solution Explorer ที่ถูกขยายสำหรับไฟล์ทั้งหมดที่คุณเข้าถึง

Public Sub LocateFileInSolutionExplorer()
    DTE.ExecuteCommand("View.TrackActivityinSolutionExplorer")
    DTE.ExecuteCommand("View.TrackActivityinSolutionExplorer")
    DTE.ExecuteCommand("View.SolutionExplorer")
End Sub

ผูกแป้นพิมพ์ลัดไปยังแมโครที่กำหนดเองนี้เพื่อสร้างสิ่งที่ควรเป็นคุณสมบัติ Visual Studio ในตัวอย่างมีประสิทธิภาพ


วิธีนี้ใช้งานได้จริงใน VS 2010 และติดตั้งง่ายกว่าที่คิด (เคล็ดลับในการเพิ่มมาโคร: helixoft.com/blog/archives/6 )
user1068352

ลิงก์ที่โพสต์ในบรรทัดคำตอบแรกใช้งานไม่ได้ คุณช่วยแก้ไขได้มั้ย
Tyagi Akhilesh

@TyagiAkhilesh - โปรดทราบว่าคำตอบนี้ (เพิ่มมาโครของคุณเอง) เป็นสิ่งจำเป็นเฉพาะเมื่อคุณยังใช้ VS 2010 รุ่นใหม่กว่ามีคำสั่งในตัว
ToolmakerSteve

16

หากคุณมี ReSharper และต้องการเพิ่ม "ค้นหาในโซลูชัน Explorer" ลงในเมนูบริบทของแท็บ:

  1. ไปที่เครื่องมือ -> ปรับแต่ง -> คำสั่ง -> เมนูบริบท
  2. เลือก "เมนูบริบทอื่น | หน้าต่างเอกสาร MDI ง่าย"
  3. คลิก "เพิ่มคำสั่ง"
  4. เลือก "Resharper" -> "ReSharper_LocateInSolutionOrAssemblyExplorer" (ใน VS2019 ชื่อหมวดหมู่ถูกเปลี่ยนเป็น "ส่วนขยาย")
  5. "ตกลง" -> "ปิด"

ตอนนี้เมื่อคลิกขวาที่แท็บใดก็ได้แล้วคุณจะเห็นตัวเลือกใหม่: ค้นหาใน Solution Explorer

UPDATE:

การติดตามข้อคิดเห็นจาก @ jeremy-paskali คุณสามารถตั้งค่าแป้นพิมพ์ลัดสำหรับคำสั่งนี้:

  1. ไปที่เครื่องมือ -> ปรับแต่ง -> "แป้นพิมพ์ ... "
  2. ค้นหา "ReSharper.ReSharper_LocateInSolutionOrAssemblyExplorer" ในฟิลด์ "แสดงคำสั่งที่มี" และเลือก
  3. ตรวจสอบทางลัดที่กำหนดในปัจจุบันในรายการแบบหล่นลงด้านล่าง
  4. ทำการเปลี่ยนแปลงใด ๆ หากจำเป็น
  5. "ตกลง" -> "ปิด"

3
ใน Visual Studio 2015 ถ้าคุณคลิกปุ่ม "แป้นพิมพ์ ... " ที่ด้านล่างของหน้าต่าง "ปรับแต่ง" คุณจะถูกพาไปที่ตัวเลือก -> สภาพแวดล้อม -> กล่องโต้ตอบของแป้นพิมพ์ ในกล่องโต้ตอบนี้คุณสามารถไปที่ "ReSharper.ReSharper_LocateInSolutionOrAssemblyExplorer" และค้นหาหรือเปลี่ยนแป้นพิมพ์ลัดเป็นคำสั่งนี้ ฉันค้นพบว่า VS2015 ของฉันถูกตั้งค่าเป็น "Shift + Alt + L" และใช้งานได้!
Jeremy Paskali

การตีระฆังในอีกสองปีต่อมาเพื่อบอกว่าเคล็ดลับเมนูบริบทยังคงใช้ได้กับ VS 2017 และ R # 2018.2 ขอบคุณสำหรับสิ่งนี้!
Michael Armes

หากการทดลองใช้Shift+Alt+Lไม่ได้ผลสำหรับคุณใน VS2019 แสดงว่าสิ่งนี้ทำงานได้อย่างแน่นอน
gosr

11

ฉันรู้ว่ามันสายเกินไป แต่หวังว่าจะช่วยคนอื่นได้ ตัวเลือกที่ดีที่สุดในขณะนี้คือการติดตั้ง Microsoft Visual Studio เพิ่มในเครื่องมือการผลิตพลังงาน

http://visualstudiogallery.msdn.microsoft.com/d0d33361-18e2-46c0-8ff2-4adea1e34fef

ด้วยวิธีนี้ "Solution Navigator" (ทางเลือกของ Solution Explorer ที่มีประโยชน์มากมาย) ซึ่งคุณสามารถใช้เพื่อกรองไฟล์เพื่อแสดงเฉพาะ "เปิด" คุณสามารถกรองไฟล์เพื่อแสดง "แก้ไข" และ "ไม่ได้บันทึก"


ฉันใช้ VS 2012 และเครื่องมือไฟฟ้า ฉันไม่เห็น Solution Navigator ที่ใดก็ได้ คุณต้องการที่จะอธิบายอย่างละเอียดเกี่ยวกับเรื่องนี้? บอกให้รู้ว่าที่ใดที่ Solution Navigator พบ
ทำเครื่องหมาย

แก้ไข Microsoft วางแผนที่จะทำ - แต่จบลงด้วยการโยกย้ายเพียงบางส่วนของมัน ฉันผิดหวังที่พวกเขาออกจากที่นี่เช่นกัน
เพื่อน

10

Visual Studio 2012 Ctrl [, Sมีทางลัดใหม่ ใช่คุณต้องพิมพ์Ctrl [แล้วปล่อยแล้วพิมพ์ทันทีS(หรือคลิกที่ไอคอนซิงค์เล็ก ๆ ที่ด้านบนของ Solution Explored) มันจะประสานกับรายการ

แน่นอนคุณสามารถเปลี่ยนทางลัด ฉันคิดว่าฉันจะลองAlt+Lหา

หากคุณต้องการที่จะเปลี่ยนทางลัดมันชื่อคำสั่งภายใต้การเป็นOptions\Environment\KeyboardSolutionExplorer.SyncWithActiveDocument

โดยปกติแล้วนี่จะมีประโยชน์มากกว่าการติดตามอยู่ตลอดเวลาซึ่งในเวอร์ชั่นเก่ามักจะเป็นหายนะเพราะมันจะติดตาม 100 รายการในหนึ่งแถวจากนั้นกระโดดข้ามสถานที่ ...


ยอดเยี่ยม !!! ใน VS2012 Ctrl+', sฉันกุญแจรวมกันเป็น ดังนั้นคุณต้องเปลี่ยนโดยอ้างข้อความ[ 'ฉันหวังว่าสิ่งนี้จะช่วยใครบางคน
ferpega

3
"หรือคลิกที่ไอคอนซิงค์เล็ก ๆ ที่ด้านบนของโซลูชันสำรวจ"สำหรับฉันวิธีที่ง่ายที่สุดในการทำสิ่งนี้ให้สำเร็จใน VS เวอร์ชันที่ใหม่กว่า ทำได้ดีนี่!
Andreas

ขอบคุณ @mrt! ฉันเกลื่อนกลาดในคำตอบนี้; แต่คุณช่วยให้ฉันไม่ต้องทำตามขั้นตอนการปรับแต่งแปลก ๆ (หรือจำทางลัดที่คลุมเครือ) ... ! ปุ่มที่ควรจะเรียกว่าออกมามากขึ้นอย่างชัดเจนในคำตอบนี้ :)
arichards

5

ในกรณีที่คุณต้องการติดตามไฟล์ปัจจุบันผ่านทางแป้นพิมพ์ลัด - กิจกรรมคือ "View.TrackActivityinSolutionExplorer" (กำหนดคีย์ที่นี่ -> เครื่องมือ - ตัวเลือก - สภาพแวดล้อม - คีย์บอร์ด)

เครดิต (ความคิดเห็นของเจมส์)

สิ่งนี้ใช้ได้สำหรับฉัน


หมายเหตุนี้สลับตัวเลือก "ติดตามรายการที่ใช้งานอยู่ในโซลูชัน Explorer" หากคุณไม่ต้องการให้ตัวเลือกนั้น (เพราะมันน่ารำคาญ) คุณจะต้องพิมพ์ปุ่มทางลัดที่กำหนดสองครั้ง: เปิดหนึ่งครั้ง (จะพบรายการที่เลือก) จากนั้นจึงปิดตัวเลือกอีกครั้ง
ริชาร์ด


0

หากคุณต้องการเลือกไฟล์ในคำสั่งโซลูชัน explorer on และไม่ต้องการติดตั้งอะไรฉันก็จะแนะนำมาโครนี้

ฉันได้ทำการทดสอบแล้วตั้งค่าทางลัดเป็น Alt + T และฉันสามารถยืนยันได้ว่าทำงานได้กับ VS 2010

ขอบคุณ Dan Vanderboom สำหรับการเขียน


0

ใน Visual Studio 2010 คุณสามารถเปิดตัวเลือก "ติดตามรายการที่ใช้งานในโซลูชัน Explorer" ซึ่งจะหมายถึงเมื่อใดก็ตามที่คุณสลับระหว่างเอกสารที่เอกสารใหม่ถูกเลือกในโซลูชัน Explorer สิ่งนี้อาจสร้างความรำคาญหากโซลูชันของคุณมีโฟลเดอร์จำนวนมากเพราะเมื่อคุณย้ายไฟล์ในโซลูชันของคุณโฟลเดอร์ทั้งหมดจะเปิดทิ้งไว้

Visual Studio 2012 เปิดตัวฟีเจอร์ใหม่ "Sync with Active Document" สามปุ่มสำหรับมันที่ด้านบนของ Explorer Ctrl + [, Sโซลูชันหรือคุณสามารถใช้ทางลัด

สกรีนช็อตของการซิงค์ด้วยปุ่มเอกสารที่ใช้งานอยู่


เรื่องนี้ไม่ได้ครอบคลุมอย่างเพียงพอโดยคำตอบที่มีอยู่เมื่อหลายปีก่อน
ToolmakerSteve

0

สำหรับ Visual Studio 2017 ที่ใช้แป้นพิมพ์ AZERTY แบบฝรั่งเศสคำสั่งจะเหมือนกันกับที่ระบุโดย Aaron Carlson แต่แป้นพิมพ์ลัดนั้นแตกต่างกัน

แป้นพิมพ์ลัด AZERTY เพื่อนำทางไปยังไฟล์ที่ใช้งานอยู่สำหรับ c # คือCtrl+ ), Ctrl+S

ฉันตรวจสอบว่าทางลัดไม่ได้เปลี่ยนสำหรับผู้ใช้ QWERTY ใน VS2017 ในหน้านี้ http://visualstudioshortcuts.com/2017/

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.