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


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


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.


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.


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


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!


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,



12

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


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.




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.



9

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






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


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

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.



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

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.


3

Na niemieckiej klawiaturze jest to ctrl+ shift+ ^.


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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.