Accédez à l'accolade correspondante dans Visual Studio?

544

Existe-t-il un moyen dans Visual Studio 2008 de passer d'une accolade fermante à son accolade ouvrante? J'ai trouvé pas mal de choses sur la mise en évidence de l'accolade, mais rien sur le déplacement du curseur dessus.

(Version VB.NET de cette question: raccourci clavier pour basculer entre "If / End If" )

thepocketwade
la source
1
incroyablement, cela semble ne pas fonctionner (2019) pour les fichiers .js sur Mac Visual Studio. WTH?!
Fattie
@Fattie, cela ne fonctionne pas non plus dans Windows 10 pour les fichiers .cs. Je suis assez confiant que c'est une chose transversale pour VS 2019, j'ai donc posé une nouvelle question: stackoverflow.com/q/59183422/1739000
NH.

Réponses:

734

J'ai trouvé ceci pour vous: sautez entre les accolades dans Visual Studio :

Placez votre curseur avant ou après l'accolade (votre choix), puis appuyez sur CTRL+ ]. Il fonctionne avec les parenthèses (), les crochets [] et les accolades {}. Désormais, vous n'avez plus besoin de jouer Où est Waldo? pour trouver cette attelle.

Sur MacOS, utilisez CMD+ SHIFT+\

Tim Santeford
la source
52
Juste pour information, sur un clavier norvégien, le raccourci pour cela est Ctrl+ Å(comme pour le clavier danois mentionné dans une réponse ci-dessous).
Julian
55
De plus, dans VS 2010 et sur un clavier allemand c'est Ctrl+ ´. C'est l'apostrophe juste à côté du retour arrière.
Kjellski
11
Sur l'azerty belge, il semble y avoir ctrl+ ^, ce qui est, bizarrement, sur la clé qui a également le [crochet (qui doit AltGrêtre tapé).
Nyerguds
50
utilisez CTRL +] + MAJ pour sélectionner le texte entre eux
ygaradon
15
en clavier italien est CTRL + ì
Pisu
110

Utilisez CTRL+ ]pour basculer entre eux. Placez le curseur sur l'un des accolades lorsque vous l'utilisez.

Ahmad Mageed
la source
107

J'utilise Visual Studio 2008 et vous pouvez personnaliser ce que vous voulez que ce raccourci soit.

Cliquez sur le menu Outils -> Options -> Environnement -> Clavier . Recherchez ensuite Edit.GotoBrace .

Cela vous indiquera quelle combinaison de touches est actuellement affectée à cela. Je pense que vous pouvez changer cela si vous le souhaitez, mais c'est utile si le Ctrl+ ]ne fonctionne pas.

funkymushroom
la source
3
Ceci est très utile pour trouver des raccourcis clavier pour les claviers d'autres langues.
Afonso Matos
Oui, nous devons toujours répondre aux questions de commande avec le nom de la commande au cas où le clavier est différent ou si le raccourci par défaut a été supprimé. Consultez également Edit.GotoBraceExtend, si vous mappez Ctrl + [quelque chose] à Edit.GotoBrace, vous voudrez probablement mapper Ctrl + Shift + [quelque chose] à Edit.GotoBraceExtend.
hsandt
1
Cela m'a été utile car il n'était pas du tout défini pour moi dans VS 2017.
Mmm
26

Remarque: Cela fonctionne également pour la correspondance #if / #elif / #endif. Le curseur doit être sur le #.

Pierre
la source
22

Si, pour une raison quelconque, cela ne fonctionne pas pour vous, quelque chose a peut-être gâché vos liaisons de clavier (cela n'a pas fonctionné pour moi). Vous pouvez cependant réactiver la liaison assez facilement - du moins c'est ce que je pensais:

J'ai essayé cette procédure:

  • Allez dans le menu Outils -> Options -> Environnement -> Clavier
  • Faites défiler ou recherchez la commande Modifier.
  • Attribuez le raccourci souhaité (le mien était vide, alors j'ai mis CTRL   + ])
  • Assurez-vous de cliquer sur le "bouton Attribuer"

Je l'ai essayé et cela n'a toujours pas fonctionné. J'ai redémarré Visual Studio, et cela ne fonctionnait toujours pas - enfin, cela ne fonctionnait que pour les fichiers .cs, mais j'en ai besoin pour fonctionner pour les fichiers .vb et les fichiers texte, et ... enfin TOUS les fichiers!

Paul Gorbas
la source
2
Pour les fichiers VB, utilisez CTRL+ SHIFT+ UP/DOWN(ref: stackoverflow.com/a/7895072/740639 )
Walter Stabosz
@WalterStabosz Ne fonctionne pas ici (VS2015 VB.NET).
Ivanzinho
20

Sur mon clavier français, c'est CTRL+ ^.

Matthieu Rouget
la source
17

Sur un clavier allemand, c'est Ctrl+ ´.

Baldewin
la source
12

Sur un clavier espagnol, c'est CTRL+ ¿(ou CTRL+ ¡).

Keith
la source
2
10 minutes pour découvrir que WTF était ¡, comme écrit dans le menu d'options VS2008. Merci!
Roman Rdgz
11

Par souci d'exhaustivité, sur un clavier suédois, c'est CTRL + å .

En outre, je suppose que logique, mais vaut la peine de mentionner CTRL + shift+ å (pour Å majuscule), sélectionne tout à l'intérieur des accolades et passe à celui correspondant.

Ola Karlsson
la source
11

Sur mon clavier danois, c'est CTRL+ Å.

Raymond
la source
11

Et Ctrl+ Shift+ ]sélectionnera tout le texte.

JCS à Tampa
la source
10

Sur mon clavier portugais et SO avec EN VS, c'est CTRL+ «pour naviguer vers l'accolade correspondante et CTRL+ SHIFT+ «si vous avez l'intention de sélectionner le code interne.

Peter Mortensen
la source
9

Sur mon clavier italien, c'est CTRL+ ^.

Peppe
la source
9

Sur mon clavier pt-BR (portugais brésilien) c'est en fait CTRL+ [.

karlphillip
la source
9

Sur un clavier turc, c'est Ctrl+ ü.

Turkdogan Tasdelen
la source
8

Sur mon clavier slovène c'est ALT   +Đ

skz
la source
2
C'est CTRL + đ par défaut
Marko Juvančič
6

Sur mon clavier néerlandais (belge), c'est CTRL+ ^.

Ward Coessens
la source
6

Allez à Outils> Options> Environnement> Polices et couleurs, sélectionnez "Correspondance d'accolade (rectangle)" et changez le "Arrière-plan de l'élément" en par exemple jaune. Cela a fonctionné pour les parenthèses C # () {} et [].

jasumon janardanan
la source
Oui utile et la zone de texte "Nom d'affichage" des polices et couleurs est l'endroit où se trouve le rectangle de correspondance d'accolade.
Catto
Si vous avez le thème sombre comme moi, le cyan au lieu du jaune rendra également le support lui-même plus visible.
Bora
5

Pour Visual Studio Code (comme vu dans leur documentation ), utilisez Ctrl+ Shift+ \.

Le paramètre se trouve dans:

Fichier / Préférences / Raccourci clavier

J'utilise Visual Studio Code 1.8.0. Remarque Visual Studio Code peut se comporter différemment pour les claviers internationaux (comme on le voit dans cette réponse concernant le clavier allemand )

J'espère que cela aide quelqu'un.

Claudiu Hardalau
la source
5

Des détails qui peuvent profiter à tous (Linux / Win / Mac)

La commande dans le menu / éditeur de raccourcis clavier est editor.action.jumpToBracketlà, vous pouvez la régler comme bon vous semble. Il y en a aussi un editor.action.selectToBracketqui n'a pas de raccourci par défaut (au moins sur Mac).

Etc.

Sur le Mac editor.action.jumpToBracketcommence par Cmd+ Shift+ \ et je l'ai changé en Ctrl+ ]pour être en accord avec ce que les autres disent ici. Je l'ai fait dans l'espoir de pouvoir utiliser Ctrl+ Shift+ ]pour "Étendre la sélection au support correspondant". C'est ce qui m'a amené à découvrir les détails ci-dessus. J'ai réglé editor.action.selectToBracketsur Ctrl+ Shift+ ]et obtenu exactement le comportement que je voulais.

Bruno Bronosky
la source
4

Sur un clavier hongrois, c'est Ctrl+ ú.

Zéiksz
la source
4

Un peu pertinent, mais pour les balises HTML: (puisqu'il n'y a pas de solution intégrée, Ctrl+ Jne fonctionne pas pour les balises HTML:)

Voici la réponse en tant que macro que j'ai construite qui le fait (basculer), y compris aller au focus:

Voici la démo:

Entrez la description de l'image ici

Et voici le code. Prendre plaisir!

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
Royi Namir
la source
Le mappage américain standard de <Control> +], fonctionne aussi pour moi en HTML et CSS. Les deux balises sont également mises en évidence.
Paul Gorbas
3

Dans Visual Studio Code sur le clavier allemand, c'est ctrl+ shift+^

Mais vous devez ouvrir un fichier avec l'extension correcte - cela ne fonctionne pas dans les nouveaux fichiers non enregistrés par exemple.

Markus
la source
3

Sur un clavier allemand, c'est ctrl+ shift+ ^.

olippuner
la source
1
Fonctionne comme ça sur mon clavier français!
Sylvain P.
Dans Visual Studio 2019 Windows \ German, j'ai trouvé ceci: [Cntrl] + [´] pour fonctionner
Mong Zhu
2

Sur le clavier franco-suisse: utilisez CTRL+ SHIFT+^

Fabio Salvalai
la source
2

Sur l'espagnol (Espagne), le clavier avec VS2012 est Ctrl+ ¡comme indiqué par @Keith mais si vous utilisez Ctrl+ ¿(tapé comme Ctrl+ Shift+ ¡), il passe ensuite à Matching Brace plus sélectionne tout le code entre les deux accolades et vous ne pouvez pas revenir à la autre orthèse.

David Oliván Ubieto
la source