Iść do pasującego nawiasu klamrowego w Visual Studio?

544

Czy w programie Visual Studio 2008 jest sposób na przejście z klamry zamykającej do klamry otwierającej? Znalazłem sporo rzeczy na temat podświetlania nawiasu klamrowego, ale nic na temat przesuwania kursora do niego.

(Wersja VB.NET tego pytania: Skrót klawiaturowy do przeskakiwania między „If / End If” )

thepocketwade
źródło
1
niewiarygodnie, to wydaje się nie działać (2019) dla plików .js w Mac Visual Studio. WTH?
Fattie
@Fattie, Nie działa również w systemie Windows 10 dla plików .cs. Jestem przekonany, że jest to ogólna sprawa dla VS 2019, więc zadałem nowe pytanie: stackoverflow.com/q/59183422/1739000
NH.

Odpowiedzi:

734

Znalazłem to dla Ciebie: Przejdź między nawiasami klamrowymi w Visual Studio :

Umieść kursor przed lub po nawiasie (twój wybór), a następnie naciśnij CTRL+ ]. Działa z nawiasami (), nawiasami kwadratowymi [] i nawiasami klamrowymi {}. Od teraz nie musisz grać w Where's Waldo? znaleźć ten nawias klamrowy.

W systemie MacOS użyj CMD+ SHIFT+\

Tim Santeford
źródło
52
Tylko dla informacji, na norweskiej klawiaturze skrót do tego jest Ctrl+ Å(taki sam jak dla duńskiej klawiatury wymienionej w odpowiedzi poniżej).
Julian
55
Ponadto w VS 2010 i na niemieckiej klawiaturze jest to Ctrl+ ´. To apostrof tuż obok backspace.
Kjellski
11
Na belgijskim azerty wydaje się, że jest to ctrl+ ^, co dziwnie jest na klawiszu, który ma również [nawias (który AltGrnależy wpisać).
Nyerguds,
50
użyj CTRL +] + SHIFT, aby zaznaczyć tekst między nimi
ygaradon
15
na włoskiej klawiaturze jest CTRL + ì
Pisu
110

Użyj CTRL+, ]aby przełączać się między nimi. Podczas używania umieść kursor na jednym z nawiasów klamrowych.

Ahmad Mageed
źródło
107

Korzystam z programu Visual Studio 2008 i możesz dostosować, jaki ma być ten skrót.

Kliknij menu Narzędzia -> Opcje -> Środowisko -> Klawiatura . Następnie poszukaj Edit.GotoBrace .

Dzięki temu dowiesz się, która kombinacja klawiszy jest obecnie przypisana do tego. Myślę, że możesz to zmienić, jeśli chcesz, ale jest to przydatne, jeśli Ctrl+ ]nie działa.

funkymushroom
źródło
3
Jest to bardzo przydatne do znajdowania skrótów klawiszowych dla klawiatur innych języków.
Afonso Matos
Tak, zawsze powinniśmy odpowiadać na pytania polecenia z nazwą polecenia, w przypadku gdy klawiatura jest inna lub domyślny skrót został usunięty. Sprawdź także Edit.GotoBraceExtend, jeśli zamapujesz Ctrl + [coś] na Edit.GotoBrace, prawdopodobnie będziesz chciał zmapować Ctrl + Shift + [coś] na Edit.GotoBraceExtend.
hsandt
1
Przydało mi się to, ponieważ w VS 2017 wcale mnie nie ustawiono.
Mmm,
26

Uwaga: Działa również w przypadku dopasowania #if / #elif / #endif. Karetka musi być na #.

Pierre
źródło
22

Jeśli z jakiegoś powodu to NIE działa dla ciebie, być może coś zepsuło twoje powiązania z klawiaturą (nie działało to dla mnie). Możesz ponownie włączyć wiązanie dość łatwo - przynajmniej tak myślałem:

Próbowałem tej procedury:

  • Przejdź do menu Narzędzia -> Opcje -> Środowisko -> Klawiatura
  • Przewiń lub wyszukaj polecenie Edit.GotoBrace
  • Przypisz pożądany skrót (mój był pusty, więc wstawiłem CTRL   + ])
  • Pamiętaj, aby kliknąć przycisk „Przypisz przycisk”

Próbowałem i nadal nie działało. Zrestartowałem Visual Studio i nadal nie działało - dobrze działało TYLKO dla plików .cs, ale potrzebuję go do pracy z plikami .vb i plikami tekstowymi oraz ... cóż WSZYSTKICH plików!

Paul Gorbas
źródło
2
W przypadku plików VB użyj CTRL+ SHIFT+ UP/DOWN(zob .: stackoverflow.com/a/7895072/740639 )
Walter Stabosz
@WalterStabosz Nie działa tutaj (VS2015 VB.NET).
Ivanzinho,
20

Na mojej francuskiej klawiaturze jest CTRL+ ^.

Matthieu Rouget
źródło
17

Na niemieckiej klawiaturze jest Ctrl+ ´.

Baldewin
źródło
12

Na hiszpańskiej klawiaturze jest to CTRL+ ¿(lub CTRL+ ¡).

Keith
źródło
2
10 minut na odkrycie WTF to ¡, jak zapisano w menu opcji VS2008. Dzięki!
Roman Rdgz,
11

Dla kompletności, na szwedzkiej klawiaturze jest to CTRL + å .

Myślę też, że logiczne, ale warto wspomnieć o CTRL + shift+ å (dla dużej litery Å), zaznacza wszystko w nawiasach klamrowych i przechodzi do pasującego.

Ola Karlsson
źródło
11

Na mojej duńskiej klawiaturze jest CTRL+ Å.

Raymond
źródło
11

I Ctrl + Shift+ ]wybiorą cały tekst.

JCS w Tampie
źródło
10

Na mojej portugalskiej klawiaturze i SO z EN VS można CTRL+ «przejść do pasującego nawiasu klamrowego i CTRL+ SHIFT+, «jeśli zamierzasz wybrać wewnętrzny kod.

Peter Mortensen
źródło
9

Na mojej włoskiej klawiaturze jest CTRL+ ^.

Peppe
źródło
9

Na mojej klawiaturze pt-BR (brazylijski portugalski) jest to w rzeczywistości CTRL+ [.

karlphillip
źródło
9

Na tureckiej klawiaturze jest to Ctrl+ ü.

Turkdogan Tasdelen
źródło
8

Na mojej słoweńskiej klawiaturze jest to ALT   +Đ

skz
źródło
2
Domyślnie jest CTRL + đ
Marko Juvančič,
6

Na mojej holenderskiej (belgijskiej) klawiaturze jest CTRL+ ^.

Totem Coessens
źródło
6

Idź do Narzędzia> Opcje> Środowisko> Czcionki i kolory, wybierz „Dopasowywanie nawiasów (prostokąt)” i zmień „Tło elementu” na np. Żółty. Działa to w przypadku nawiasów C # () {} i [].

jasumon janardanan
źródło
Tak pomocne i pole tekstowe „Wyświetlana nazwa” czcionek i kolorów to miejsce, w którym znajduje się Brace Matching Rectangle.
Catto,
Jeśli masz ciemny motyw, tak jak ja, cyjan zamiast żółtego sprawi, że sam nawias będzie bardziej widoczny.
Bora,
5

Aby zobaczyć kod Visual Studio (jak widać w ich dokumentacji ), użyj Ctrl+ Shift+ \.

Ustawienie można znaleźć w:

Plik / Preferencje / Skrót klawiaturowy

Używam Visual Studio Code 1.8.0. Uwaga Kod Visual Studio może zachowywać się inaczej w przypadku klawiatur międzynarodowych (jak widać w tej odpowiedzi na temat: klawiatura niemiecka )

Mam nadzieję, że to komuś pomoże.

Claudiu Hardalau
źródło
5

Szczegóły, które mogą przynieść korzyści wszystkim (Linux / Win / Mac)

Polecenie w menu / edytorze skrótów klawiaturowych editor.action.jumpToBracketpozwala ustawić dowolne ustawienie. Jest też jeden tak zwany, editor.action.selectToBracketktóry domyślnie nie ma skrótu (przynajmniej na Macu).

Itp.

Na komputerze Mac editor.action.jumpToBracketzaczyna się od Cmd+ Shift+ \ i zmieniłem go na Ctrl+, ]aby był zgodny z tym, co mówią inni tutaj. Zrobiłem to w nadziei, że będę mógł użyć Ctrl+ Shift+ ]do „Rozszerz zaznaczenie do pasującego nawiasu”. Właśnie dlatego odkryłem powyższe szczegóły. Ustawiłem editor.action.selectToBracketna Ctrl+ Shift+ ]i uzyskałem dokładnie takie zachowanie, jakie chciałem.

Bruno Bronosky
źródło
4

Na węgierskiej klawiaturze jest to Ctrl+ ú.

Zéiksz
źródło
4

Trochę istotne, ale dla tagów HTML: (ponieważ nie ma wbudowanego rozwiązania, Ctrl+ Jnie działa dla tagów HTML:)

Oto odpowiedź jako makro, które zbudowałem, które to robi (przełącza), w tym przejdź do fokusa:

Oto demo:

Wpisz opis zdjęcia tutaj

A oto kod. Cieszyć się!

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
źródło
Standardowe mapowanie <Control> +] w USA działa również dla mnie w HTML i CSS. Oba tagi również są podświetlane.
Paul Gorbas
3

W Visual Studio Code na niemieckiej klawiaturze jest to ctrl+ shift+^

Ale musisz otworzyć plik z poprawnym rozszerzeniem - na przykład nie działa w nowych niezapisanych plikach.

Markus
źródło
3

Na niemieckiej klawiaturze jest to ctrl+ shift+ ^.

olippuner
źródło
1
Działa tak na mojej francuskiej klawiaturze!
Sylvain P.
W Visual Studio 2019 Windows \ German znalazłem to: [Cntrl] + [´] do pracy
Mong Zhu
2

Na klawiaturze szwajcarsko-francuskiej: użyj CTRL+ SHIFT+^

Fabio Salvalai
źródło
2

Na klawiaturze hiszpańskiej (Hiszpania) z VS2012 jest Ctrl+, ¡jak podano przez @Keith, ale jeśli użyjesz Ctrl+ ¿(wpisany jako Ctrl+ Shift+ ¡), to przejdzie do pasującego nawiasu klamrowego plus zaznacza cały kod w dwóch nawiasach klamrowych, a następnie nie możesz przejść ponownie do inny aparat ortodontyczny.

David Oliván Ubieto
źródło