Перейти до Matching Brace у Visual Studio?


544

Чи є спосіб у Visual Studio 2008 перейти від фіксуючої дужки до її відкриваючої дужки? Я знайшов досить багато речей про підсвічування дужки, але нічого про переміщення курсору на неї.

(Версія VB.NET цього питання: Комбінація клавіш для переходів між "If / End If" )


1
неймовірно, це, здається, не працює (2019) для файлів .js у Mac Visual Studio. WTH ?!
Fattie

@Fattie, Також він не працює в Windows 10 для файлів .cs. Я впевнений, що це всебічна річ для VS 2019, тому я поставив нове запитання: stackoverflow.com/q/59183422/1739000
NH.

Відповіді:


734

Я знайшов це для вас: Переходьте між брекетами у Visual Studio :

Покладіть курсор до або після дужки (на ваш вибір), а потім натисніть CTRL+ ]. Він працює з дужками (), дужками [] та дужками {}. Відтепер вам не потрібно грати Де Вальдо? щоб знайти цю дужку.

У MacOS використовуйте CMD+ SHIFT+\


52
Для отримання інформації, на норвезькій клавіатурі це ярлик - Ctrl+ Å(те саме, що для датської клавіатури, зазначеної у відповіді нижче).
Джуліан

55
Крім того, у VS 2010 та на німецькій клавіатурі це Ctrl+ ´. Це апостроф поруч із заднім простором.
Kjellski

11
На бельгійській азерті це здається ctrl+ ^, що, як не дивно, на клавіші, яка також має [дужку (яку потрібно AltGrввести).
Nyerguds

50
використовуйте CTRL +] + SHIFT для вибору тексту між ними
ygaradon

15
на італійській клавіатурі - CTRL + ì
Pisu

110

Використовуйте CTRL+, ]щоб перемикатися між ними. Розмістіть курсор на одному з дужок при його використанні.


107

Я використовую Visual Studio 2008 , і ви можете налаштувати те, яким ви хочете цей ярлик.

Клацніть меню Інструменти -> Параметри -> Навколишнє середовище -> Клавіатура . Потім шукайте Edit.GotoBrace .

Це покаже вам, яка комбінація клавіш призначена для цього. Я думаю, ви можете змінити це, якщо хочете, але корисно, якщо Ctrl+ ]не працює.


3
Це дуже корисно для пошуку палітур для клавіатур інших мов.
Afonso Matos

Так, ми завжди повинні відповідати на запитання команд із назвою команди, якщо клавіатура відрізняється або ярлик за замовчуванням був видалений. Також перегляньте Edit.GotoBraceExtend, якщо ви накреслите Ctrl + [щось] на Edit.GotoBrace, ви, ймовірно, захочете зіставити Ctrl + Shift + [щось] на Edit.GotoBraceExtend.
hsandt

1
Це було корисно для мене, оскільки воно взагалі не було для мене встановлене у VS 2017.
Ммм

26

Примітка. Він також працює для відповідності #if / #elif / #endif. Карет повинен бути на #.


22

Якщо з якоїсь причини це НЕ працює для вас, можливо, щось зіпсувало прив’язки вашої клавіатури (це не працювало для мене). Ви можете знову ввімкнути прив’язку досить просто - принаймні так я подумав:

Я спробував цю процедуру:

  • Перейдіть до меню Інструменти -> Параметри -> Навколишнє середовище -> Клавіатура
  • Перейдіть до або знайдіть команду Edit.GotoBrace
  • Призначте потрібний ярлик (мій був порожній, тому я поставив CTRL   + ])
  • Не забудьте натиснути кнопку "Призначити"

Я спробував це, і все одно не вийшло. Я перезапустив Visual Studio, і він все ще не працював - добре він працював ТІЛЬКИ для файлів .cs, але мені це потрібно для роботи .vb файлів і текстових файлів, і ... ну ВСІ файли!


2
Для VB файлів, використання CTRL+ SHIFT+ UP/DOWN(посилання: stackoverflow.com/a/7895072/740639 )
Walter Stabosz

@WalterStabosz Тут не працює (VS2015 VB.NET).
Іванзіньо



12

На іспанській клавіатурі це CTRL+ ¿(або CTRL+ ¡).


2
10 хвилин до виявлення WTF було ¡, як записано в меню параметрів VS2008. Дякую!
Роман Рдгз

11

Для повноти, на шведській клавіатурі це CTRL + å .

Крім того, я думаю, що логічно, але варто згадати CTRL + shift+ å (для капіталу Å), вибирає все, що знаходиться всередині дужок, і переходить до відповідного.




10

На моїй португальській клавіатурі та SO з EN VS це CTRL+ «перейти до відповідних дужок та CTRL+ SHIFT+, «якщо ви маєте намір вибрати внутрішній код.





8

На моїй словенській клавіатурі це ALT   +Đ


2
Це за замовчуванням CTRL +
đ



6

Перейдіть до Інструментів> Опції> Навколишнє середовище> Шрифти та кольори, виберіть "Збіг фігур (прямокутник)" та змініть "Фон предмета" на наприклад, Жовтий. Це працювало для круглих дужок C # () {} та [].


Так, корисно та "Відображати ім'я", у текстовому полі "Шрифти та кольори" розміщено прямокутник, що відповідає Brace.
Катто

Якщо у вас є темна тема, як у мене, блакитний замість жовтого також зробить саму дужку більш помітною.
Бора

5

Для коду Visual Studio (як показано в їхній документації ) використовуйте Ctrl+ Shift+ \.

Налаштування можна знайти у:

Файл / Налаштування / Комбінація клавіш

Я використовую Visual Studio Code 1.8.0. Примітка. Код Visual Studio може поводитися по-різному для міжнародних клавіатур (як це видно з цієї відповіді про: німецька клавіатура )

Сподіваюся, що це комусь допоможе.


5

Деталі, які можуть принести користь кожному (Linux / Win / Mac)

Команда в меню / редакторі комбінацій клавіш є editor.action.jumpToBracket, ви можете встановити її на все, що завгодно. Існує також такий, що називається, editor.action.selectToBracketякий за замовчуванням не має ярлика (принаймні на Mac).

І т.д.

На Mac editor.action.jumpToBracketпочинається як Cmd+ Shift+, \ і я змінив його на Ctrl+, ]щоб відповідати тому, що тут говорять інші. Я зробив це з надією, що я можу використовувати Ctrl+ Shift+ ]для "Розширення вибору на відповідні дужки". Саме це і змушує мене відкрити деталі вище. Я поставив editor.action.selectToBracketна Ctrl+ Shift+ ]і отримав саме поведінка я хотів.



4

Трохи актуально, але для тегів HTML: (оскільки немає вбудованого рішення, Ctrl+ Jне працює для тегів HTML:)

Ось відповідь як макрос, який я створив, який робить це (тумблер), включаючи перехід до фокусу:

Ось демонстрація:

Введіть тут опис зображення

І ось код. Насолоджуйтесь!

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

Стандартне зіставлення <Control> +] у США працює для мене також у HTML та CSS. Обидва теги також виділяються.
Пол Горбас

3

У Visual Studio Code на німецькій клавіатурі це ctrl+ shift+^

Але ви повинні відкрити файл з правильним розширенням - наприклад, він не працює в нових неза збережених файлах.


3

На німецькій клавіатурі це ctrl+ shift+ ^.


1
Так працює на моїй французькій клавіатурі!
Sylvain P.

У Visual Studio 2019 Windows \ German я знайшов таке: [Cntrl] + [´] працювати
Mong Zhu


2

На іспанській (Іспанії) клавіатурі з VS2012 є Ctrl+, ¡як зазначено в @Keith, але якщо ви використовуєте Ctrl+ ¿(вводиться як Ctrl+ Shift+ ¡), тоді переходите до Matching Brace плюс вибираєте весь код у двох дужках, і тоді ви не можете знову перейти до інший брекет.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.