Перейти к соответствия скобки в Visual Studio?
Есть ли способ в Visual Studio 2008 перейти от закрывающей скобки к открывающей скобке? Я нашел довольно много информации о выделении фигурной скобки, но ничего о перемещении курсора на нее.
(Версия этого вопроса для VB.NET: сочетание клавиш для перехода между "If / End If")
29 ответов
Я нашел это для вас: переход между скобками в Visual Studio
Поместите курсор перед или после скобки (ваш выбор), а затем нажмите CTRL + ]. Работает с фигурными или круглыми скобками. Отныне вам не нужно играть Где Уолдо? найти эту скобу.
Я использую Visual Studio 2008, и вы можете настроить, какой вы хотите этот ярлык.
Нажмите меню Сервис -> Параметры -> Среда -> Клавиатура. Тогда ищите Edit.GotoBrace.
Это скажет вам, какая комбинация клавиш в настоящее время назначена для этого. Я думаю, что вы можете изменить это, если хотите, но это полезно, если Ctrl + ] не работает.
Используйте CTRL + ] для переключения между ними. При использовании курсора поместите курсор на одну из фигурных скобок.
Примечание: это также работает для соответствия #if / #elif / #endif. Каретка должна быть на #.
Если по какой-то причине это НЕ работает для вас, возможно, что-то испортило ваши привязки клавиатуры (у меня это не сработало). Вы можете включить привязку достаточно легко - хотя бы так я и думал:
Я попробовал эту процедуру:
- Зайдите в меню Инструменты -> Параметры -> Среда -> Клавиатура
- Выделите или найдите команду Edit.GotoBrace
- Назначьте нужный ярлык (мой был пуст, поэтому я положил в CTRL + ])
- Обязательно нажмите кнопку "Назначить"
Я попробовал это, и это все еще не работало. Я перезапустил Visual Studio, и он все еще не работал - ну, он работал ТОЛЬКО для файлов.cs, но мне нужно, чтобы он работал для файлов.vb и текстовых файлов, и... ну ВСЕ файлы!
Для полноты на шведской клавиатуре это CTRL + å.
Также, я думаю, логично, но стоит упомянуть CTRL + shift + å (для заглавной буквы Å), выбрать все внутри фигурных скобок и перейти к соответствующей.
На моей португальской клавиатуре и SO с EN VS это CTRL + " для перехода к соответствующей скобке и CTRL + SHIFT + ", если вы хотите выбрать внутренний код.
На моей клавиатуре pt-BR (бразильский португальский) это на самом деле CTRL + [.
На Mac используйте команду+shift+\.
Источник: комментарий к этому ответу: /questions/4304543/perejti-k-zakryivayuschej-skobke-v-kode-visual-studio/4304546#4304546. Протестировано в Visual Studio Code версии 1.10.2.
Для кода Visual Studio (как видно из их документации) используйте Ctrl+Shift+\.
Настройки можно найти в:
Файл / Настройки / Сочетание клавиш
Я использую Visual Studio Code 1.8.0 . Примечание. Код Visual Studio может работать по-разному для международных клавиатур (как видно из этого ответа на немецком языке)
Надеюсь, это кому-нибудь поможет.
Перейдите в Инструменты> Параметры> Среда> Шрифты и цвета, выберите "Соответствие скобок (прямоугольник)" и измените "Фон элемента", например, на Желтый. Это сработало для скобок C# () {} и [].
Подробности, которые могут принести пользу всем (Linux/Win/Mac)
Команда в меню / редакторе сочетаний клавиш editor.action.jumpToBracket
там вы можете установить все, что захотите. Существует также один называется editor.action.selectToBracket
который не имеет ярлыка по умолчанию (по крайней мере, на Mac).
И т.п.
На Mac editor.action.jumpToBracket
начинается как Cmd+Shift+\, и я изменил его на Ctrl+], чтобы соответствовать тому, что здесь говорят другие. Я сделал это в надежде, что смогу использовать Ctrl+Shift+], чтобы "Расширить выделение до соответствующей скобки". Это то, что привело меня к раскрытию деталей выше. Я поставил editor.action.selectToBracket
Ctrl+Shift+] и получил именно то поведение, которое я хотел.
Немного актуально, но для тегов 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
В Visual Studio Code на немецкой клавиатуре это Ctrl+Shift+^
Но вы должны открыть файл с правильным расширением - он не работает, например, в новых несохраненных файлах.
На швейцарско-французской клавиатуре: используйте CTRL + SHIFT + ^
На испанском (Испания) клавиатура с VS2012 - это Ctrl + ¡, как указано @Keith, но если вы используете Ctrl + ¿ (набирается как Ctrl + Shift + ¡), то переходите к Соответствующей скобке, затем выбираете весь код в двух фигурных скобках, а затем вы не могу снова перейти к другой скобке.
Июнь 2021 г.
На Mac под управлением Windows 10 с параллельными Visual Studio 2019 и C # и с американской клавиатурой решение, которое сработало для меня, заключалось в редактировании ярлыка в «Инструменты Параметры Клавиатура Edit.GoToBrace
В моей системе этот ярлык был пустым ...
Нажмите клавишу Ctl и клавишу] и сохраните ярлык.
Windows, Visual Studio 2017, C++, венгерская клавиатура, Ctrl+ú
ВOptions/Environment/Keyboard
, проверятьEditor.GotoBrace
.