Перейти к сопоставлению скобки в Visual Studio?


544

Есть ли способ в Visual Studio 2008 перейти от закрывающей скобки к открывающей скобке? Я нашел довольно много информации о выделении фигурной скобки, но ничего о перемещении курсора на нее.

(Версия этого вопроса для VB.NET: сочетание клавиш для перехода между «If / End If» )


1
невероятно, но это не работает (2019) для файлов .js в Mac Visual Studio. WTH ?!
Толстяк

@ Толстяк, он не работает в 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
Это очень полезно для поиска сочетаний клавиш для других языков.
Афонсо Матос

Да, мы всегда должны отвечать на вопросы команд с помощью имени команды в случае, если клавиатура отличается или ярлык по умолчанию был удален. Также проверьте 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 )
Уолтер Стабос

@WalterStabosz Здесь не работает (VS2015 VB.NET).
Иванзиньо,



12

На испанской клавиатуре это CTRL+ ¿(или CTRL+ ¡).


2
10 минут на обнаружение WTF было, как написано в меню опций VS2008. Спасибо!
Roman Rdgz

11

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

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




10

На моей португальской клавиатуре и SO с EN VS, это CTRL+ «для перехода к соответствующей скобке и CTRL+ SHIFT+, «если вы хотите выбрать внутренний код.



9

На моей клавиатуре pt-BR (бразильский португальский) это на самом деле CTRL+ [.






6

Перейдите в Инструменты> Параметры> Среда> Шрифты и цвета, выберите «Соответствие скобкам (прямоугольник)» и измените «Фон элемента», например, на Желтый. Это сработало для круглых скобок C # () {} и [].


Да, полезно, и в текстовом поле «Отображаемое имя» шрифтов и цветов находится прямоугольник скобок.
Катто

Если у вас темная тема, как у меня, голубой вместо желтого также сделает скобку более заметной.
Бора

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

Вот ответ в виде макроса, который я построил, который делает это (переключение), включая go to focus:

Вот демо:

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

А вот и код. Наслаждайтесь!

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
Работает так на моей французской клавиатуре!
Сильвен П.

В Visual Studio 2019 Windows \ German я нашел это: [Cntrl] + [´] для работы
Монг Чжу


2

На испанском (Испания) клавиатура с VS2012 - это Ctrl+, ¡как указано @Keith, но если вы используете Ctrl+ ¿(набранный как Ctrl+ Shift+ ¡), то перейдете к Соответствующей скобке, плюс выделите весь код в двух скобках, и затем вы не сможете снова перейти к другая скобка.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.