Перейти к сопоставлению скобки в Visual Studio? - PullRequest
511 голосов
/ 01 октября 2009

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

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

Ответы [ 27 ]

9 голосов
/ 24 января 2012

На турецкой клавиатуре это Ctrl + ü .

9 голосов
/ 27 июня 2014

И Ctrl + Shift + ] выделит весь текст.

9 голосов
/ 05 апреля 2010

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

8 голосов
/ 17 сентября 2012

На моей итальянской клавиатуре это CTRL + ^ .

8 голосов
/ 11 мая 2011

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

7 голосов
/ 28 февраля 2011

На моей словенской клавиатуре это ALT + Đ

6 голосов
/ 19 апреля 2017

На Mac используйте команду + shift + \ .

Источник : комментарий к этому ответу: https://stackoverflow.com/a/37877082/3345085. Протестировано в Visual Studio Code версии 1.10.2.

5 голосов
/ 10 июня 2011

На моей голландской (бельгийской) клавиатуре это CTRL + ^ .

5 голосов
/ 01 февраля 2012

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

4 голосов
/ 02 декабря 2014

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

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

Вот демо:

Enter image description here

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

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