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" )


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+\


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.


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.


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 #.


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!


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



12

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


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.




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.








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 [].


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.


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.



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

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.


3

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


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 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.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.