Ir a Brace a juego en Visual Studio?

544

¿Hay alguna forma en Visual Studio 2008 de pasar de una llave de cierre a su llave de apertura? He encontrado una buena cantidad de cosas sobre resaltar la llave, pero nada sobre mover el cursor hacia ella.

(Versión VB.NET de esta pregunta: método abreviado de teclado para saltar entre "If / End If" )

thepocketwade
fuente
1
Increíblemente, esto parece no funcionar (2019) para archivos .js en Mac Visual Studio. WTH?
Fattie
@Fattie, tampoco funciona en Windows 10 para archivos .cs. Estoy bastante seguro de que esto es algo general para VS 2019, así que hice una nueva pregunta: stackoverflow.com/q/59183422/1739000
NH.

Respuestas:

734

Encontré esto para ti: Salta entre llaves en Visual Studio :

Coloque el cursor antes o después de la llave (su elección) y luego presione CTRL+ ]. Funciona con paréntesis (), corchetes [] y llaves {}. De ahora en adelante no necesitas jugar ¿Dónde está Waldo? para encontrar ese aparato ortopédico.

En MacOS, use CMD+ SHIFT+\

Tim Santeford
fuente
52
Solo para información, en un teclado noruego, el atajo para esto es Ctrl+ Å(igual que para el teclado danés mencionado en una respuesta a continuación).
Julian
55
Además, en VS 2010 y en un teclado alemán es Ctrl+ ´. Es el apóstrofo justo al lado del retroceso.
Kjellski
11
En la azertía belga parece ser ctrl+ ^, que es, curiosamente, en la tecla que también tiene el [corchete (que debe AltGrescribirse).
Nyerguds
50
use CTRL +] + MAYÚS para seleccionar el texto entre ellos
ygaradon
15
en el teclado italiano es CTRL + ì
Pisu
110

Use CTRL+ ]para cambiar entre ellos. Coloque el cursor en una de las llaves cuando lo use.

Ahmad Mageed
fuente
107

Uso Visual Studio 2008 , y puedes personalizar lo que quieres que sea este acceso directo.

Haga clic en el menú Herramientas -> Opciones -> Entorno -> Teclado . Luego busque Edit.GotoBrace .

Esto le dirá qué combinación de teclas está asignada actualmente para esto. Yo creo que puede cambiar esto si quieres, pero es útil si el Ctrl+ ]no funciona.

funkymushroom
fuente
3
Esto es muy útil para encontrar combinaciones de teclas para teclados de otros idiomas.
Afonso Matos
Sí, siempre debemos responder a las preguntas de comando con el nombre del comando en caso de que el teclado sea diferente o se haya eliminado el acceso directo predeterminado. También revise Edit.GotoBraceExtend, si asigna Ctrl + [algo] a Edit.GotoBrace, probablemente desee asignar Ctrl + Shift + [algo] a Edit.GotoBraceExtend.
hsandt
1
Esto fue útil para mí porque no estaba configurado para mí en VS 2017.
Mmm
26

Nota: También funciona para coincidencias #if / #elif / #endif. El caret debe estar en el #.

Pierre
fuente
22

Si por alguna razón esto NO funciona para usted, es posible que algo haya dañado sus enlaces de teclado (no funcionó para mí). Sin embargo, puede volver a habilitar el enlace con bastante facilidad, al menos así lo pensé:

Intenté este procedimiento:

  • Vaya al menú Herramientas -> Opciones -> Entorno -> Teclado
  • Desplázate o busca el comando Editar.GotoBrace
  • Asigne el acceso directo deseado (el mío estaba vacío, así que puse CTRL   + ])
  • Asegúrese de hacer clic en el botón "Asignar"

Lo intenté y todavía no funcionó. Reinicié Visual Studio, y todavía no funcionó, bueno, SOLO funcionó para archivos .cs, pero necesito que funcione para archivos .vb y archivos de texto, y ... bueno, ¡TODOS los archivos!

Paul Gorbas
fuente
2
Para archivos VB, use CTRL+ SHIFT+ UP/DOWN(ref: stackoverflow.com/a/7895072/740639 )
Walter Stabosz
@WalterStabosz No funciona aquí (VS2015 VB.NET).
Ivanzinho
20

En mi teclado francés, es CTRL+ ^.

Matthieu Rouget
fuente
17

En un teclado alemán es Ctrl+ ´.

Baldewin
fuente
12

En un teclado español es CTRL+ ¿(o CTRL+ ¡).

Keith
fuente
2
10 minutos para descubrir WTF fue ¡, como está escrito en el menú de opciones VS2008. ¡Gracias!
Roman Rdgz
11

Para completar, en un teclado sueco es CTRL + å .

Además, supongo que es lógico, pero vale la pena mencionar CTRL + shift+ å (para Å mayúscula), selecciona todo dentro de las llaves y va al que corresponde.

Ola Karlsson
fuente
11

En mi teclado danés es CTRL+ Å.

Raymond
fuente
11

Y Ctrl+ Shift+ ]seleccionará todo el texto.

JCS en Tampa
fuente
10

En mi teclado portugués y SO con EN VS, es CTRL+ «navegar hasta la llave correspondiente y CTRL+ SHIFT+ «si tiene la intención de seleccionar el código interno.

Peter Mortensen
fuente
9

En mi teclado italiano, es CTRL+ ^.

Peppe
fuente
9

En mi teclado pt-BR (portugués brasileño) en realidad es CTRL+ [.

karlphillip
fuente
9

En un teclado turco, es Ctrl+ ü.

Turkdogan Tasdelen
fuente
8

En mi teclado esloveno es ALT   +Đ

skz
fuente
2
Es CTRL + đ por defecto
Marko Juvančič
6

En mi teclado holandés (belga), es CTRL+ ^.

Ward Coessens
fuente
6

Vaya a Herramientas> Opciones> Entorno> Fuentes y colores, seleccione "Coincidencia de llaves (Rectángulo)" y cambie el "Fondo del elemento" a, por ejemplo, Amarillo. Esto funcionó para los paréntesis de C # () {} y [].

jasumon janardanan
fuente
Sí útil y el cuadro de texto 'Nombre para mostrar' de Fuentes y colores es donde se encuentra el Rectángulo de coincidencia de llaves.
Catto
Si tiene el tema oscuro como yo, el cian en lugar del amarillo también hará que el soporte sea más visible.
Bora
5

Para Visual Studio Code (como se ve en su documentación ), use Ctrl+ Shift+ \.

La configuración se puede encontrar en:

Archivo / Preferencias / Atajo de teclado

Estoy usando Visual Studio Code 1.8.0. Nota: Visual Studio Code puede comportarse de manera diferente para teclados internacionales (como se ve en esta respuesta re: teclado alemán )

Espero que esto ayude a alguien.

Claudiu Hardalau
fuente
5

Detalles que pueden beneficiar a todos (Linux / Win / Mac)

El comando en el menú / editor de atajos de teclado está editor.action.jumpToBracketahí, puede configurarlo como desee. También hay uno llamado editor.action.selectToBracketque no tiene acceso directo por defecto (al menos en Mac).

Etc.

En Mac editor.action.jumpToBracketcomienza como Cmd+ Shift+ \ y lo cambié a Ctrl+ ]para estar en línea con lo que otros dicen aquí. Lo hice con la esperanza de poder usar Ctrl+ Shift+ ]para "Ampliar la selección al corchete correspondiente". Eso es lo que me llevó a descubrir los detalles anteriores. Me puse editor.action.selectToBracketa Ctrl+ Shift+ ]y obtuve exactamente el comportamiento que quería.

Bruno Bronosky
fuente
4

En un teclado húngaro es Ctrl+ ú.

Zéiksz
fuente
4

Un poco relevante, pero para las etiquetas HTML: (dado que no hay una solución integrada, Ctrl+ Jno funciona para las etiquetas HTML:)

Aquí está la respuesta como una macro que he construido que lo hace (alternar), incluido ir a foco:

Aquí está la demostración:

Ingrese la descripción de la imagen aquí

Y aquí está el código. ¡Disfrutar!

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
fuente
La asignación estándar estadounidense de <Control> +] también funciona para mí en HTML y CSS. Ambas etiquetas se resaltan también.
Paul Gorbas el
3

En Visual Studio Code en el teclado alemán es ctrl+ shift+^

Pero debe abrir un archivo con la extensión correcta; por ejemplo, no funciona en archivos nuevos no guardados.

Markus
fuente
3

En un teclado alemán es ctrl+ shift+ ^.

olippuner
fuente
1
¡Funciona así en mi teclado francés!
Sylvain P.
En Visual Studio 2019 Windows \ German encontré esto: [Cntrl] + [´] para trabajar
Mong Zhu
2

En el teclado suizo-francés: use CTRL+ SHIFT+^

Fabio Salvalai
fuente
2

En español (España), el teclado con VS2012 es Ctrl+ ¡según lo indicado por @Keith, pero si usa Ctrl+ ¿(escrito como Ctrl+ Shift+ ¡), luego va a Correspondencia coincidente y selecciona todo el código dentro de las dos llaves y luego no puede volver a otro aparato ortopédico

David Oliván Ubieto
fuente