Zur passenden Klammer in Visual Studio wechseln?


544

Gibt es in Visual Studio 2008 eine Möglichkeit, von einer schließenden Klammer zu einer öffnenden Klammer zu wechseln? Ich habe eine Menge Dinge gefunden, um die Klammer hervorzuheben, aber nichts, um den Cursor darauf zu bewegen.

(VB.NET-Version dieser Frage: Tastenkombination zum Wechseln zwischen "If / End If" )


1
Unglaublicherweise scheint dies für .js-Dateien unter Mac Visual Studio nicht zu funktionieren (2019). WTH ?!
Fattie

@Fattie, es funktioniert auch nicht in Windows 10 für CS-Dateien. Ich bin mir ziemlich sicher, dass dies für VS 2019 eine allgemeine Angelegenheit ist,
NH.

Antworten:


734

Ich habe Folgendes für Sie gefunden: In Visual Studio zwischen geschweiften Klammern springen :

Setzen Sie den Cursor vor oder nach der Klammer (Ihrer Wahl) und drücken Sie dann CTRL+ ]. Es funktioniert mit Klammern (), Klammern [] und Klammern {}. Von jetzt an musst du nicht mehr spielen Wo ist Waldo? um diese Zahnspange zu finden.

Verwenden Sie unter MacOS CMD+ SHIFT+\


52
Nur zur Information, auf einer norwegischen Tastatur ist die Abkürzung dafür Ctrl+ Å(wie bei der dänischen Tastatur, die in einer Antwort unten erwähnt wird).
Julian

55
Außerdem ist es in VS 2010 und auf einer deutschen Tastatur Ctrl+ ´. Es ist das Apostroph direkt neben der Rücktaste.
Kjellski

11
Auf belgischem Zertifikat scheint es ctrl+ zu sein ^, was seltsamerweise auf dem Schlüssel steht, der auch die [Klammer hat (die AltGreingegeben werden muss).
Nyerguds

50
Verwenden Sie STRG +] + UMSCHALT, um den Text zwischen ihnen auszuwählen
Ygaradon

15
in italienischer Tastatur ist STRG + ì
Pisu

110

Verwenden Sie CTRL+ ], um zwischen ihnen zu wechseln. Platzieren Sie den Cursor bei Verwendung auf einer der geschweiften Klammern.


107

Ich verwende Visual Studio 2008 und Sie können anpassen, wie diese Verknüpfung aussehen soll.

Klicken Sie auf das Menü Extras -> Optionen -> Umgebung -> Tastatur . Suchen Sie dann nach Edit.GotoBrace .

Hier erfahren Sie, welche Tastenkombination aktuell dafür vergeben ist. Ich denke, Sie können dies ändern, wenn Sie möchten, aber es ist nützlich, wenn das Ctrl+ ]nicht funktioniert.


3
Dies ist sehr nützlich, um Tastenkombinationen für Tastaturen anderer Sprachen zu finden.
Afonso Matos

Ja, wir sollten Befehlsfragen immer mit dem Befehlsnamen beantworten, falls die Tastatur anders ist oder die Standardverknüpfung entfernt wurde. Schauen Sie sich auch Edit.GotoBraceExtend an. Wenn Sie Strg + [etwas] Edit.GotoBrace zuordnen, möchten Sie wahrscheinlich Strg + Umschalt + [etwas] Edit.GotoBraceExtend zuordnen.
Hsandt

1
Dies war nützlich für mich, weil es für mich in VS 2017 überhaupt nicht eingestellt war.
Mmm

26

Hinweis: Es funktioniert auch für #if / #elif / #endif Matching. Das Caret muss auf dem sein #.


22

Wenn dies aus irgendeinem Grund NICHT für Sie funktioniert, hat möglicherweise etwas Ihre Tastaturbindungen durcheinander gebracht (es hat bei mir nicht funktioniert). Sie können die Bindung jedoch einfach genug wieder aktivieren - zumindest dachte ich:

Ich habe dieses Verfahren ausprobiert:

  • Gehen Sie zum Menü Extras -> Optionen -> Umgebung -> Tastatur
  • Blättern Sie zu dem Befehl Edit.GotoBrace oder suchen Sie ihn
  • Weisen Sie die gewünschte Verknüpfung zu (meine war leer, also habe ich CTRL   + eingegeben] )
  • Stellen Sie sicher, dass Sie auf die Schaltfläche "Zuweisen" klicken.

Ich habe es versucht und es hat immer noch nicht funktioniert. Ich habe Visual Studio neu gestartet und es hat immer noch nicht funktioniert - nun, es hat NUR für CS-Dateien funktioniert, aber ich brauche es, um für VB-Dateien und Textdateien zu funktionieren, und ... nun, ALLE Dateien!


2
Verwenden Sie für VB-Dateien CTRL+ SHIFT+ UP/DOWN(Ref: stackoverflow.com/a/7895072/740639 )
Walter Stabosz

@WalterStabosz Funktioniert hier nicht (VS2015 VB.NET).
Ivanzinho



12

Auf einer spanischen Tastatur ist es CTRL+ ¿(oder CTRL+ ¡).


2
10 Minuten, um WTF zu entdecken, waren ¡, wie in VS2008 Optionsmenü geschrieben. Vielen Dank!
Roman Rdgz

11

Der Vollständigkeit halber ist es auf einer schwedischen Tastatur CTRL + å .

Ich denke auch logisch, aber erwähnenswert CTRL + shift+ å (für Großbuchstaben Å), wählt alles in den Klammern aus und geht zum passenden.




10

Auf meiner portugiesischen Tastatur und SO mit EN VS ist es CTRL+ «, zur passenden Klammer zu navigieren und CTRL+ SHIFT+, «wenn Sie den inneren Code auswählen möchten.


9

Auf meiner italienischen Tastatur ist es CTRL+ ^.


9

Auf meiner pt-BR- Tastatur (brasilianisches Portugiesisch) ist es tatsächlich CTRL+ [.



8

Auf meiner slowenischen Tastatur ist es ALT   +Đ


2
Standardmäßig ist
STRG



6

Gehen Sie zu Extras> Optionen> Umgebung> Schriftarten und Farben, wählen Sie "Klammeranpassung (Rechteck)" und ändern Sie den "Elementhintergrund" in z. B. Gelb. Dies funktionierte für die C # -Klammern () {} und [].


Ja, hilfreich. Im Textfeld "Anzeigename" von "Schriftarten und Farben" befindet sich das passende Klammer-Rechteck.
Catto

Wenn Sie das dunkle Thema wie ich haben, macht Cyan anstelle von Gelb auch die Klammer selbst sichtbarer.
Bora


5

Details, von denen jeder profitieren kann (Linux / Win / Mac)

Mit dem Befehl im Menü / Editor der Tastaturkürzel editor.action.jumpToBracketkönnen Sie ihn auf einen beliebigen Wert einstellen. Es gibt auch eine aufgerufene, editor.action.selectToBracketdie standardmäßig keine Verknüpfung hat (zumindest auf einem Mac).

Usw.

Auf dem Mac editor.action.jumpToBracketbeginnt als Cmd+ Shift+ \ und ich habe es in Ctrl+ geändert ], um mit dem übereinzustimmen, was andere hier sagen. Ich tat dies in der Hoffnung, dass ich Ctrl+ Shift+ verwenden könnte, ]um "Auswahl auf passende Klammer zu erweitern". Das hat mich dazu gebracht, die obigen Details zu entdecken. Ich habe editor.action.selectToBracketauf Ctrl+ Shift+ gesetzt ]und genau das Verhalten bekommen, das ich wollte.



4

Ein bisschen relevant, aber für HTML-Tags: (Da es keine integrierte Lösung gibt, funktioniert Ctrl+ Jnicht für HTML-Tags :)

Hier ist die Antwort als Makro, das ich erstellt habe, um es zu tun (umschalten), einschließlich go to focus:

Hier ist die Demo:

Geben Sie hier die Bildbeschreibung ein

Und hier ist der Code. Genießen!

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

Das Standard-US-Mapping von <Control> +] funktioniert für mich auch in HTML und CSS. Beide Tags werden ebenfalls hervorgehoben.
Paul Gorbas

3

In Visual Studio Code auf deutscher Tastatur ist es ctrl+ shift+^

Sie müssen jedoch eine Datei mit der richtigen Erweiterung öffnen - dies funktioniert beispielsweise nicht in neuen nicht gespeicherten Dateien.


3

Auf einer deutschen Tastatur ist es ctrl+ shift+ ^.


1
Funktioniert so auf meiner französischen Tastatur!
Sylvain P.

In Visual Studio 2019 Windows \ German fand ich Folgendes: [Cntrl] + [´] zu arbeiten
Mong Zhu


2

Auf Spanisch (Spanien) ist die Tastatur mit VS2012 Ctrl+, ¡wie von @Keith angegeben. Wenn Sie jedoch Ctrl+ ¿(als Ctrl+ Shift+ eingegeben ¡) verwenden, gehen Sie zu Matching Brace plus , wählen Sie den gesamten Code in den beiden geschweiften Klammern aus, und Sie können dann nicht mehr zum gehen andere Klammer.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.