ไปที่ Matching Brace ใน Visual Studio หรือไม่


544

มีวิธีใดใน Visual Studio 2008 ที่จะเปลี่ยนจากวงเล็บปิดเป็นวงเล็บปีกกาเปิด ฉันได้พบสิ่งต่าง ๆ จำนวนพอสมควรเกี่ยวกับการเน้นวงเล็บปีกกา แต่ไม่มีอะไรเกี่ยวกับการเลื่อนเคอร์เซอร์ไป

(รุ่น VB.NET ของคำถามนี้: แป้นพิมพ์ลัดสำหรับการกระโดดระหว่าง "If / End If" )


1
อย่างไม่น่าเชื่อดูเหมือนว่าจะไม่ทำงาน (2019) สำหรับไฟล์. js บน Mac Visual Studio เป็นไงบ้าง!
Fattie

@Fattie มันไม่ทำงานใน Windows 10 สำหรับไฟล์. cs เช่นกัน ฉันค่อนข้างมั่นใจว่านี่เป็นสิ่งที่ทั่วกระดานสำหรับ VS 2019 ดังนั้นฉันจึงได้ตั้งคำถามใหม่: stackoverflow.com/q/59183422/1739000
NH

คำตอบ:


734

ฉันพบสิ่งนี้สำหรับคุณ: ข้ามระหว่างเครื่องหมายปีกกาใน Visual Studio :

วางเคอร์เซอร์ของคุณก่อนหรือหลังรั้ง (คุณเลือก) แล้วกด+CTRL ]มันทำงานร่วมกับวงเล็บ () วงเล็บ [] และวงเล็บปีกกา {} จากนี้ไปคุณไม่จำเป็นต้องเล่น Where's Waldo? เพื่อค้นหารั้งที่

บน MacOS ใช้CMD+ SHIFT+\


52
สำหรับข้อมูลเกี่ยวกับแป้นพิมพ์ภาษานอร์เวย์ปุ่มลัดสำหรับรุ่นนี้คือCtrl+ Å(เหมือนกับแป้นพิมพ์ภาษาเดนมาร์กที่กล่าวถึงในคำตอบด้านล่าง)
Julian

55
นอกจากนี้ในปี 2010 และ VS บนแป้นพิมพ์ภาษาเยอรมันมันเป็น+Ctrl ´มันคือเครื่องหมายวรรคตอนติดกับ Backspace
Kjellski

11
สำหรับความคลาดเคลื่อนของเบลเยียมดูเหมือนว่าจะเป็นctrl+ ^ซึ่งก็คือคี่บนคีย์ที่มี[วงเล็บ (ซึ่งต้องAltGrพิมพ์)
Nyerguds

50
ใช้ CTRL +] + SHIFT เพื่อเลือกข้อความระหว่างกัน
ygaradon

15
ในแป้นพิมพ์ภาษาอิตาลีคือ CTRL + ì
Pisu

110

ใช้CTRL+ ]เพื่อสลับระหว่างพวกเขา วางเคอร์เซอร์ที่หนึ่งในเครื่องหมายวงเล็บเมื่อใช้งาน


107

ฉันใช้Visual Studio 2008และคุณสามารถกำหนดสิ่งที่คุณต้องการทางลัดนี้

คลิกเมนูเครื่องมือ -> ตัวเลือก -> สิ่งแวดล้อม -> แป้นพิมพ์ แล้วมองหาEdit.GotoBrace

สิ่งนี้จะบอกคุณว่าชุดคีย์ใดที่ได้รับมอบหมายในขณะนี้ ฉันคิดว่าคุณสามารถเปลี่ยนแปลงสิ่งนี้ได้ถ้าคุณต้องการ แต่มันมีประโยชน์ถ้าCtrl+ ]ไม่ทำงาน


3
สิ่งนี้มีประโยชน์มากในการค้นหาการโยงคีย์สำหรับคีย์บอร์ดของภาษาอื่น
Afonso Matos

ใช่เราควรตอบคำถามคำสั่งด้วยชื่อคำสั่งในกรณีที่แป้นพิมพ์แตกต่างกันหรือทางลัดเริ่มต้นถูกลบ ตรวจสอบ Edit.GotoBraceExtend หากคุณจับคู่ Ctrl + [บางสิ่ง] ไปที่ Edit.GotoBrace คุณอาจต้องการแมป Ctrl + Shift + [some] ไปที่ Edit.GotoBraceExtend
hsandt

1
สิ่งนี้มีประโยชน์สำหรับฉันเพราะมันไม่ได้ตั้งไว้สำหรับฉันเลยในปี 2560
Mmm

26

หมายเหตุ: นอกจากนี้ยังสามารถใช้ได้กับการจับคู่ #if / #elif / #endif #เครื่องหมายตกต้องอยู่ใน


22

ถ้าด้วยเหตุผลบางอย่างนี่ไม่ได้ผลสำหรับคุณบางอย่างอาจทำให้แป้นพิมพ์ของคุณยุ่งเหยิง (มันไม่ได้ผลสำหรับฉัน) คุณสามารถเปิดใช้งานการโยงใหม่ได้ง่ายพอ - อย่างน้อยฉันก็คิดว่า:

ฉันลองขั้นตอนนี้:

  • ไปที่เมนูเครื่องมือ -> ตัวเลือก -> สภาพแวดล้อม -> แป้นพิมพ์
  • เลื่อนไปที่หรือค้นหาคำสั่ง Edit.GotoBrace
  • กำหนดทางลัดที่ต้องการ (ของฉันว่างเปล่าดังนั้นฉันจึงใส่CTRL   + ])
  • อย่าลืมคลิกปุ่ม "กำหนด"

ฉันลองแล้วยังใช้งานไม่ได้ ฉันรีสตาร์ท Visual Studio และมันก็ยังใช้งานไม่ได้ - มันใช้ได้กับไฟล์. cs เท่านั้น แต่ฉันต้องการมันสำหรับไฟล์. vb และไฟล์ข้อความและ ... ไฟล์ทั้งหมดดี!


2
สำหรับไฟล์ VB ให้ใช้CTRL+ SHIFT+ UP/DOWN(อ้างอิง: stackoverflow.com/a/7895072/740639 )
Walter Stabosz

@WalterStabosz ไม่ทำงานที่นี่ (VS2015 VB.NET)
Ivanzinho



12

บนแป้นพิมพ์ภาษาสเปนมันคือCTRL+ ¿(หรือCTRL+ ¡)


2
10 นาทีในการค้นหา WTF คือ¡ตามที่เขียนไว้ในเมนูตัวเลือก VS2008 ขอบคุณ!
Roman Rdgz

11

เพื่อความสมบูรณ์แบบบนแป้นพิมพ์ภาษาสวีเดนคือ CTRL + å +

นอกจากนี้ฉันเดาว่ามีเหตุผล แต่ควรพูดถึง CTRL + shift+ å (สำหรับเมืองหลวงÅ) เลือกทุกอย่างที่อยู่ในวงเล็บปีกกาและไปที่ตำแหน่งที่ตรงกัน









7

ในการใช้งาน Mac command+ +shift\

แหล่งที่มา : ความคิดเห็นในคำตอบนี้: https://stackoverflow.com/a/37877082/3345085 ทดสอบใน Visual Studio Code เวอร์ชั่น 1.10.2



6

ไปที่เครื่องมือ> ตัวเลือก> สภาพแวดล้อม> แบบอักษรและสีเลือก "รั้งการจับคู่ (สี่เหลี่ยมผืนผ้า)" และเปลี่ยน "พื้นหลังรายการ" เป็นสีเหลือง สิ่งนี้ใช้ได้กับวงเล็บ C # () {} และ []


ใช่กล่องข้อความ & 'ชื่อที่แสดง' ของแบบอักษรและสีเป็นประโยชน์ซึ่งเป็นที่ตั้งของการจับคู่วงเล็บเหลี่ยม
Catto

หากคุณมีชุดรูปแบบที่มืดเช่นฉันสีฟ้าแทนสีเหลืองจะทำให้วงเล็บมองเห็นได้ชัดเจนขึ้น
Bora

5

สำหรับ Visual Studio Code (ตามที่เห็นในเอกสารประกอบ ) ให้ใช้Ctrl+ Shift+\ +

การตั้งค่าสามารถพบได้ใน:

ไฟล์ / การตั้งค่า / แป้นพิมพ์ลัด

ฉันใช้ Visual Studio Code 1.8.0 หมายเหตุรหัส Visual Studio อาจทำงานแตกต่างไปจากคีย์บอร์ดนานาชาติ (ดังที่เห็นในคำตอบนี้: แป้นพิมพ์ภาษาเยอรมัน )

หวังว่านี่จะช่วยใครซักคน


5

รายละเอียดที่เป็นประโยชน์ต่อทุกคน (Linux / Win / Mac)

คำสั่งในเมนู / ตัวแก้ไขแป้นพิมพ์ลัดจะอยู่ที่editor.action.jumpToBracketนั่นคุณสามารถตั้งค่าเป็นอะไรก็ได้ที่คุณต้องการ นอกจากนี้ยังมีอีกชื่อหนึ่งeditor.action.selectToBracketที่ไม่มีทางลัดเป็นค่าเริ่มต้น (อย่างน้อยบน Mac)

เป็นต้น

บน Mac editor.action.jumpToBracketเริ่มต้นเป็นCmd+ Shift+ \ และฉันเปลี่ยนเป็นCtrl+ ]เพื่อให้สอดคล้องกับสิ่งที่คนอื่นพูดที่นี่ ฉันทำเช่นนั้นด้วยความหวังว่าฉันจะสามารถใช้Ctrl+ Shift+ ]เพื่อ "ขยายส่วนที่เลือกไปยังวงเล็บเหลี่ยมที่ตรงกัน" นั่นคือสิ่งที่ทำให้ฉันค้นพบรายละเอียดข้างต้น ฉันตั้งค่าeditor.action.selectToBracketเป็นCtrl+ Shift+ ]และได้พฤติกรรมตามที่ต้องการอย่างแน่นอน



4

มีความเกี่ยวข้องเล็กน้อย แต่สำหรับแท็ก HTML: (เนื่องจากไม่มีโซลูชันในตัวCtrl+Jไม่ทำงานกับแท็ก HTML:)

นี่คือคำตอบในฐานะมาโครที่ฉันได้สร้างขึ้นมาซึ่งมันทำหน้าที่ (สลับ) รวมถึงไปที่การโฟกัส:

นี่คือตัวอย่าง:

ป้อนคำอธิบายภาพที่นี่

และนี่คือรหัส สนุก!

Imports System
Imports EnvDTE
Imports EnvDTE80
Imports EnvDTE90
Imports EnvDTE90a
Imports EnvDTE100
Imports System.Diagnostics
Imports System.Windows.Forms

Public Module Module2
    Sub beginToEnd()

        'Place the cursor somewhere in the beginning tag, run the macro, to select from beginning to end tag

        DTE.ActiveDocument.Selection.SelectLine()
        Dim objSel As TextSelection = DTE.ActiveDocument.Selection
        Dim topPoint As TextPoint = objSel.TopPoint
        Dim lTopLine As Long = topPoint.Line
        objSel.GotoLine(lTopLine, False)
        '  DTE.ActiveDocument.Selection.StartOfLine()
        DTE.ActiveDocument.Selection.SelectLine()
        Dim line1 As String = DTE.ActiveDocument.Selection.Text()

        If InStr(line1, "/") Then

            ' MsgBox(line1)
            DTE.ExecuteCommand("Edit.ToggleOutliningExpansion")
            DTE.ActiveDocument.Selection.EndOfLine()
            DTE.ActiveDocument.Selection.StartOfLine(vsStartOfLineOptions.vsStartOfLineOptionsFirstText, True)
            objSel.GotoLine(lTopLine, False)
            DTE.ExecuteCommand("Edit.ToggleOutliningExpansion")
            DTE.ExecuteCommand("Edit.ToggleOutliningExpansion")
        Else
            DTE.ExecuteCommand("Edit.ToggleOutliningExpansion")
            DTE.ActiveDocument.Selection.EndOfLine(False)
            DTE.ExecuteCommand("Edit.ToggleOutliningExpansion")
        End If

        DTE.ActiveDocument.Selection.SelectLine()
        Dim line2 As String = DTE.ActiveDocument.Selection.Text()
        Dim objSel3 As TextSelection = DTE.ActiveDocument.Selection
        Dim topPoint3 As TextPoint = objSel3.TopPoint
        Dim lTopLine3 As Long = topPoint3.Line
        objSel.GotoLine(lTopLine3, False)
        DTE.ActiveDocument.Selection.StartOfLine(vsStartOfLineOptions.vsStartOfLineOptionsFirstText, False)
    End Sub
End Module

การจับคู่แบบมาตรฐานของสหรัฐอเมริกาของ <Control> +] ใช้ได้กับฉันใน HTML และ CSS เช่นกัน แท็กทั้งสองได้รับการเน้นเช่นกัน
Paul Gorbas

3

ใน Visual Studio Code บนแป้นพิมพ์ภาษาเยอรมันมันctrl+shift +^

แต่คุณต้องเปิดไฟล์ที่มีนามสกุลถูกต้อง - มันไม่ทำงานในไฟล์ใหม่ที่ยังไม่ได้บันทึก


3

บนแป้นพิมพ์ภาษาเยอรมันก็ctrl+ +shift^


1
ทำงานเช่นนี้บนแป้นพิมพ์ภาษาฝรั่งเศสของฉัน!
Sylvain P.

ใน Visual Studio 2019 Windows \ German ฉันพบสิ่งนี้: [Cntrl] + [´] เพื่อทำงาน
Mong Zhu


2

บนแป้นพิมพ์ภาษาสเปน (สเปน) ที่มี VS2012 คือCtrl+ ¡ตามที่ระบุโดย @Keith แต่ถ้าคุณใช้Ctrl+ ¿(พิมพ์เป็นCtrl+ Shift+ ¡) จากนั้นไปที่ Matching Brace plus และเลือกรหัสทั้งหมดภายในวงเล็บปีกกาสองตัวแล้วคุณไม่สามารถไปที่ รั้งอื่น ๆ

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