Ir para chaves correspondentes no Visual Studio?

544

Existe uma maneira no Visual Studio 2008 de passar de uma chave de fechamento para sua chave de abertura? Encontrei uma quantidade razoável de coisas sobre o destaque da chave, mas nada sobre mover o cursor para ela.

(Versão VB.NET desta pergunta: Atalho de teclado para pular entre "If / End If" )

thepocketwade
fonte
1
incrivelmente, isso parece não funcionar (2019) para arquivos .js no Mac Visual Studio. WTH ?!
Fattie 17/09/19
@Fattie, também não funciona no Windows 10 para arquivos .cs. Estou bastante confiante de que isso é uma coisa abrangente para o VS 2019, então fiz uma nova pergunta: stackoverflow.com/q/59183422/1739000
NH.

Respostas:

734

Encontrei isso para você: Salte entre chaves no Visual Studio :

Coloque o cursor antes ou depois da chave (sua escolha) e pressione CTRL+ ]. Funciona com parênteses (), colchetes [] e chaves {}. A partir de agora você não precisa mais jogar Where's Waldo? para encontrar esse suporte.

No MacOS, use CMD+ SHIFT+\

Tim Santeford
fonte
52
Apenas para informação, em um teclado norueguês o atalho para isso é Ctrl+ Å(o mesmo que para o teclado dinamarquês mencionado na resposta abaixo).
Julian
55
Além disso, no VS 2010 e em um teclado alemão, é Ctrl+ ´. É o apóstrofo ao lado do backspace.
precisa saber é o seguinte
11
No azer belga, parece ser ctrl+ ^, que é, estranhamente, a chave que também possui o [colchete (que precisa AltGrser digitado).
Nyerguds
50
Use CTRL +] + SHIFT para selecionar o texto entre eles
ygaradon
15
no teclado italiano é Ctrl + I
Pisu
110

Use CTRL+ ]para alternar entre eles. Coloque o cursor em uma das chaves ao usá-lo.

Ahmad Mageed
fonte
107

Eu uso o Visual Studio 2008 e você pode personalizar o que deseja que esse atalho seja.

Clique no menu Ferramentas -> Opções -> Ambiente -> Teclado . Em seguida, procure por Edit.GotoBrace .

Isso informará qual combinação de teclas está atualmente atribuída para isso. Eu acho que você pode mudar isso se quiser, mas é útil se o Ctrl+ ]não funcionar.

funkymushroom
fonte
3
Isso é muito útil para encontrar atalhos de teclado para os teclados de outros idiomas.
Afonso Matos
Sim, sempre devemos responder às perguntas de comando com o nome do comando, caso o teclado seja diferente ou o atalho padrão tenha sido removido. Verifique também Edit.GotoBraceExtend, se você mapear Ctrl + [algo] para Edit.GotoBrace, provavelmente desejará mapear Ctrl + Shift + [algo] para Edit.GotoBraceExtend.
hsandt
1
Isso foi útil para mim porque não estava definido para mim no VS 2017. #
Mmm
26

Nota: Ele também funciona para a correspondência #if / #elif / #endif. O sinal de intercalação deve estar no #.

Pierre
fonte
22

Se, por algum motivo, isso NÃO estiver funcionando para você, algo pode ter atrapalhado as ligações do teclado (não funcionou para mim). Você pode reativar a ligação fácil o suficiente - pelo menos eu pensei:

Eu tentei este procedimento:

  • Vá para o menu Ferramentas -> Opções -> Ambiente -> Teclado
  • Role para ou procure o comando Editar.
  • Atribua o atalho desejado (o meu estava vazio, coloquei CTRL   + ])
  • Certifique-se de clicar no botão "Atribuir"

Eu tentei e ainda não funcionou. Reiniciei o Visual Studio e ele ainda não funcionava - bem, só funcionava para arquivos .cs, mas preciso que ele funcione para arquivos .vb e arquivos de texto e ... bem, TODOS os arquivos!

Paul Gorbas
fonte
2
Para arquivos VB, use CTRL+ SHIFT+ UP/DOWN(ref: stackoverflow.com/a/7895072/740639 )
Walter Stabosz 17/04/19
@WalterStabosz Não está funcionando aqui (VS2015 VB.NET).
Ivanzinho
20

No meu teclado francês, é CTRL+ ^.

Matthieu Rouget
fonte
17

Em um teclado alemão, é Ctrl+ ´.

Baldewin
fonte
12

Em um teclado espanhol, é CTRL+ ¿(ou CTRL+ ¡).

Keith
fonte
2
10 minutos para descobrir o WTF foi ¡, conforme escrito no menu de opções do VS2008. Obrigado!
Roman Rdgz 10/09/12
11

Para completar, em um teclado sueco, é CTRL + å .

Além disso, eu acho lógico, mas vale a pena mencionar CTRL + shift+ å (para capital Å), seleciona tudo dentro do aparelho e vai para o correspondente.

Ola Karlsson
fonte
11

No meu teclado dinamarquês é CTRL+ Å.

Raymond
fonte
11

E Ctrl+ Shift+ ]selecionará todo o texto.

JCS em Tampa
fonte
10

No meu teclado em português e SO com EN VS, é CTRL+ «para navegar entre chaves e CTRL+ SHIFT+ «se você deseja selecionar o código interno.

Peter Mortensen
fonte
9

No meu teclado italiano, é CTRL+ ^.

Peppe
fonte
9

No meu teclado pt-BR (português do Brasil), na verdade, é CTRL+ [.

karlphillip
fonte
9

Em um teclado turco, é Ctrl+ ü.

Turkdogan Tasdelen
fonte
8

No meu teclado esloveno é ALT   +Đ

skz
fonte
2
É CTRL + đ por padrão
Marko Juvančič 28/08
6

No meu teclado holandês (belga), é CTRL+ ^.

Ward Coessens
fonte
6

Vá para Ferramentas> Opções> Ambiente> Fontes e cores, selecione "Correspondência entre chaves (retângulo)" e altere o "Fundo do item" para, por exemplo, Amarelo. Isso funcionou para os parênteses de C # () {} e [].

jasumon janardanan
fonte
Sim, é útil que a caixa de texto 'Nome para exibição' de Fontes e cores seja o retângulo correspondente entre chaves.
Cate
Se você tiver o tema escuro como eu, ciano em vez de amarelo também tornará o suporte mais visível.
Bora
5

Para o Visual Studio Code (como visto na documentação ), use Ctrl+ Shift+ \.

A configuração pode ser encontrada em:

Atalho Arquivo / Preferências / Teclado

Estou usando o Visual Studio Code 1.8.0. Nota O código do Visual Studio pode se comportar de maneira diferente para teclados internacionais (como visto nesta resposta em: teclado alemão )

Espero que isso ajude alguém.

Claudiu Hardalau
fonte
5

Detalhes que podem beneficiar a todos (Linux / Win / Mac)

O comando no menu / editor de atalhos do teclado está editor.action.jumpToBracketlá, você pode configurá-lo para o que quiser. Há também um chamado editor.action.selectToBracketque não possui atalho por padrão (pelo menos no Mac).

Etc.

No Mac, editor.action.jumpToBracketcomeça como Cmd+ Shift+ \ e eu mudei para Ctrl+ ]para estar de acordo com o que os outros dizem aqui. Fiz isso na esperança de poder usar Ctrl+ Shift+ ]para "Estender a seleção para o parêntese correspondente". Foi isso que me levou a descobrir os detalhes acima. Eu ajustei editor.action.selectToBracketpara Ctrl+ Shift+ ]e obtive exatamente o comportamento que queria.

Bruno Bronosky
fonte
4

Em um teclado húngaro, é Ctrl+ ú.

Zéiksz
fonte
4

Um pouco relevante, mas para as tags HTML: (como não há solução interna, o Ctrl+ Jnão funciona para tags HTML:)

Aqui está a resposta como uma macro que eu criei e que faça isso (alternar), incluindo o foco:

Aqui está a demonstração:

Digite a descrição da imagem aqui

E aqui está o código. Aproveitar!

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
fonte
O mapeamento padrão americano de <Control> +] também funciona para mim em HTML e CSS. As duas tags também são destacadas.
Paul Gorbas 09/09/19
3

No Visual Studio Code no teclado alemão, é ctrl+ shift+^

Mas você precisa abrir um arquivo com a extensão correta - ele não está funcionando em novos arquivos não salvos, por exemplo.

Markus
fonte
3

Em um teclado alemão, é ctrl+ shift+ ^.

olippuner
fonte
1
Funciona assim no meu teclado francês!
22418 Sylvain P.
Em Visual Studio 2019 Windows \ alemão eu encontrei isto: [Cntrl] + [ '] para o trabalho
Mong Zhu
2

No teclado suíço-francês: use CTRL+ SHIFT+^

Fabio Salvalai
fonte
2

No espanhol (Espanha), o teclado com VS2012 é Ctrl+, ¡conforme indicado por @Keith, mas se você usar Ctrl+ ¿(digitado como Ctrl+ Shift+ ¡), então vai para Matching Brace plus seleciona todo o código entre as duas chaves e não pode voltar ao outra chave.

David Oliván Ubieto
fonte