Vai alla parentesi graffa corrispondente in Visual Studio?


544

Esiste un modo in Visual Studio 2008 per passare da una parentesi graffa di chiusura alla sua parentesi graffa di apertura? Ho trovato un bel po 'di cose sull'evidenziazione del tutore, ma nulla su come spostare il cursore su di esso.

(Versione VB.NET di questa domanda: scorciatoia da tastiera per saltare tra "If / End If" )


1
incredibilmente, questo sembra non funzionare (2019) per i file .js su Mac Visual Studio. WTH ?!
Fattie,

@Fattie, non funziona neanche in Windows 10 per i file .cs. Sono abbastanza fiducioso che si tratti di una cosa trasversale per VS 2019, quindi ho fatto una nuova domanda: stackoverflow.com/q/59183422/1739000
NH.

Risposte:


734

Ho trovato questo per te: saltare tra parentesi graffe in Visual Studio :

Posiziona il cursore prima o dopo la parentesi graffa (a tua scelta), quindi premi CTRL+ ]. Funziona con parentesi (), parentesi [] e parentesi graffe {}. Da ora in poi non hai bisogno di giocare a Where's Waldo? per trovare quel tutore.

Su MacOS, usa CMD+ SHIFT+\


52
Solo per informazione, su una tastiera norvegese la scorciatoia per questo è Ctrl+ Å(come per la tastiera danese menzionata in una risposta di seguito).
Julian,

55
Inoltre, in VS 2010 e su una tastiera tedesca è Ctrl+ ´. È l'apostrofo proprio accanto al backspace.
Kjellski,

11
Su Azerty belga sembra essere ctrl+ ^, che è, stranamente, sulla chiave che ha anche la [parentesi (che deve AltGressere digitata).
Nyerguds,

50
usa CTRL +] + MAIUSC per selezionare il testo tra di loro
ygaradon

15
in tastiera italiana è CTRL + ì
Pisu

110

Usa CTRL+ ]per passare da una all'altra. Posiziona il cursore su una delle parentesi graffe quando lo usi.


107

Uso Visual Studio 2008 e puoi personalizzare ciò che vuoi che sia questo collegamento.

Fai clic sul menu Strumenti -> Opzioni -> Ambiente -> Tastiera . Quindi cerca Edit.GotoBrace .

Questo ti dirà quale combinazione di tasti è attualmente assegnata per questo. Io penso che è possibile modificare questo se si vuole, ma è utile se il Ctrl+ ]non funziona.


3
Questo è molto utile per trovare le combinazioni di tasti per le tastiere di altre lingue.
Afonso Matos,

Sì, dovremmo sempre rispondere alle domande di comando con il nome del comando nel caso in cui la tastiera sia diversa o il collegamento predefinito sia stato rimosso. Dai un'occhiata anche a Edit.GotoBraceExtend, se mappi Ctrl + [qualcosa] su Edit.GotoBrace, probabilmente vorrai mappare Ctrl + Shift + [qualcosa] su Edit.GotoBraceExtend.
hsandt

1
Questo è stato utile per me perché non è stato impostato per me in VS 2017.
Mmm

26

Nota: funziona anche per la corrispondenza #if / #elif / #endif. Il cursore deve essere sul #.


22

Se per qualche motivo questo NON dovesse funzionare per te, qualcosa potrebbe aver incasinato le tue combinazioni di tasti (non ha funzionato per me). Puoi riattivare l'associazione abbastanza facilmente però - almeno così ho pensato:

Ho provato questa procedura:

  • Vai al menu Strumenti -> Opzioni -> Ambiente -> Tastiera
  • Scorri o cerca il comando Edit.GotoBrace
  • Assegna il collegamento desiderato (il mio era vuoto, quindi ho inserito CTRL   + ])
  • Assicurati di fare clic sul "Pulsante Assegna"

L'ho provato e ancora non ha funzionato. Ho riavviato Visual Studio e ancora non ha funzionato - bene ha funzionato SOLO per i file .cs, ma ne ho bisogno per funzionare per i file .vb e file di testo e ... bene TUTTI i file!


2
Per VB file, utilizzare CTRL+ SHIFT+ UP/DOWN(ref: stackoverflow.com/a/7895072/740639 )
Walter Stabosz

@WalterStabosz Non funziona qui (VS2015 VB.NET).
Ivanzinho,



12

Su una tastiera spagnola è CTRL+ ¿(o CTRL+ ¡).


2
10 minuti per scoprire WTF erano ¡, come scritto nel menu delle opzioni di VS2008. Grazie!
Roman Rdgz,

11

Per completezza, su una tastiera svedese è CTRL + å .

Inoltre, immagino logico, ma vale la pena menzionare CTRL + shift+ å (per la maiuscola Å), seleziona tutto all'interno delle parentesi graffe e passa a quello corrispondente.




10

Sulla mia tastiera portoghese e SO con EN VS, è CTRL+ «per passare alla parentesi graffa corrispondente e CTRL+ SHIFT+ «se si intende selezionare il codice interno.


9

Sulla mia tastiera italiana, è CTRL+ ^.


9

Sulla mia tastiera pt-BR (portoghese brasiliano) in realtà è CTRL+ [.






6

Vai a Strumenti> Opzioni> Ambiente> Caratteri e colori, seleziona "Corrispondenza controvento (rettangolo)" e cambia "Sfondo elemento" in ad es. Giallo. Questo ha funzionato per le parentesi C # () {} e [].


Sì, utile e nella casella di testo "Nome visualizzato" di Caratteri e colori si trova il rettangolo di corrispondenza tra parentesi graffe.
Catto,

Se hai il tema scuro come me, il ciano anziché il giallo renderà anche la parentesi stessa più visibile.
Bora,

5

Per il codice di Visual Studio (come mostrato nella loro documentazione ), utilizzare Ctrl+ Shift+ \.

L'impostazione è disponibile in:

File / Preferenze / Scorciatoia da tastiera

Sto usando Visual Studio Code 1.8.0. Nota Il codice di Visual Studio potrebbe comportarsi in modo diverso per le tastiere internazionali (come indicato nella risposta relativa a: tastiera tedesca )

Spero che questo aiuti qualcuno.


5

Dettagli che possono essere utili a tutti (Linux / Win / Mac)

Il comando nel menu / editor delle scorciatoie da tastiera è editor.action.jumpToBracketlì che puoi impostarlo come preferisci. Ce n'è anche uno chiamato editor.action.selectToBracketche non ha scorciatoie per impostazione predefinita (almeno su Mac).

Eccetera.

Sul Mac editor.action.jumpToBracketinizia come Cmd+ Shift+ \ e l'ho cambiato in Ctrl+ ]per essere in linea con ciò che gli altri dicono qui. L'ho fatto nella speranza di poter usare Ctrl+ Shift+ ]per "Estendere la selezione alla parentesi corrispondente". Questo è ciò che mi ha portato a scoprire i dettagli sopra. Ho impostato editor.action.selectToBracketsu Ctrl+ Shift+ ]e ho ottenuto esattamente il comportamento che volevo.



4

Un po 'rilevante, ma per i tag HTML: (poiché non esiste una soluzione integrata, Ctrl+ Jnon funziona per i tag HTML:)

Ecco la risposta come una macro che ho costruito che lo fa (attiva / disattiva), incluso vai al focus:

Ecco la demo:

Inserisci qui la descrizione dell'immagine

Ed ecco il codice. Godere!

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

La mappatura americana standard di <Control> +], funziona anche per me in HTML e CSS. Anche i due tag vengono evidenziati.
Paul Gorbas,

3

Nel codice di Visual Studio sulla tastiera tedesca è ctrl+shift +^

Ma devi aprire un file con l'estensione corretta, ad esempio non funziona in nuovi file non salvati.


3

Su una tastiera tedesca è ctrl+ shift+ ^.


1
Funziona così sulla mia tastiera francese!
Sylvain P.

In Visual Studio 2019 Windows \ German ho trovato questo: [Cntrl] + [´] per funzionare
Mong Zhu


2

Sulla tastiera spagnola (Spagna) con VS2012 è Ctrl+ ¡come indicato da @Keith ma se si utilizza Ctrl+ ¿(digitato come Ctrl+ Shift+ ¡) si passa a Matching Brace plus seleziona tutto il codice all'interno delle due parentesi graffe e quindi non è possibile tornare nuovamente al altro tutore.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.