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


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


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.


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.


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


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!


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



12

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


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.




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.



9

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






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


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.


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.



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

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.


3

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


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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.