【问题标题】:Go to Matching Brace in Visual Studio?转到 Visual Studio 中的匹配大括号?
【发布时间】:2010-12-02 21:10:05
【问题描述】:

在 Visual Studio 2008 中有没有办法从右大括号转到左大括号?我找到了很多关于突出显示大括号的内容,但没有找到关于将光标移动到它的内容。

(本题的VB.NET版本:Keyboard shortcut for Jumping between "If/End If"

【问题讨论】:

  • 令人难以置信的是,这似乎不适用于 Mac Visual Studio 上的 .js 文件(2019 年)。 WTH ?!
  • @Fattie,它在 Windows 10 中也不适用于 .cs 文件。我非常有信心这对于 VS 2019 来说是一个全面的事情,所以我提出了一个新问题:stackoverflow.com/q/59183422/1739000
  • 不要尝试按 CTRL+F 来查看您使用的任何语言键盘,而是使用 this answer 在 Visual Studio 设置中找出答案。
  • 由于您可能在这里讨论 VS Code,所以这里是一个问题:stackoverflow.com/questions/30097634/…

标签: visual-studio-2008 keyboard-shortcuts curly-braces


【解决方案1】:

我为你找到了这个:Jump between braces in Visual Studio:

将光标放在大括号之前或之后(您的选择),然后按 CTRL + ]。它适用于圆括号 ( )、方括号 [ ] 和大括号 { }。从现在开始你不需要玩沃尔多在哪里了?找到那个大括号。

使用上面的快捷键,你也可以按住SHIFT来选择。

在 MacOS 上,使用 CMD + SHIFT + \

【讨论】:

  • 仅供参考,在挪威语键盘上,此快捷键是Ctrl+Å(与以下答案中提到的丹麦语键盘相同)。
  • 在比利时 azerty 上,它似乎是 ctrl+^,奇怪的是,键上也有 [ 括号(需要输入 AltGr)。
  • 冰岛语键盘 CTRL + Ð
  • 对于捷克语 QWERTZ 键盘,它是 CTRL + )。完全相同的位置,英文键盘有 ] 键。就在 Enter 上方。
  • 如果您在 .sql 文件中工作,CTRL + ] 将在 BEGINEND 对之间切换。 (VS 2015)
【解决方案2】:

我使用Visual Studio 2008,你可以自定义你想要的这个快捷方式。

点击菜单工具 -> 选项 -> 环境 -> 键盘。然后查找 Edit.GotoBrace

这将告诉您当前为此分配的组合键。我认为您可以根据需要更改此设置,但如果 Ctrl + ] 不起作用,它会很有用。

【讨论】:

  • 这对于查找其他语言键盘的键绑定非常有用。
  • 是的,我们应该始终使用命令名称来回答命令问题,以防键盘不同或默认快捷方式已被删除。另请查看 Edit.GotoBraceExtend,如果您将 Ctrl+[something] 映射到 Edit.GotoBrace,您可能希望将 Ctrl+Shift+[something] 映射到 Edit.GotoBraceExtend。
  • 这对我很有用,因为在 VS 2017 中根本没有为我设置它。
【解决方案3】:

使用 CTRL + ] 在它们之间切换。使用时将光标放在其中一个大括号上。

【讨论】:

    【解决方案4】:

    注意:它也适用于#if / #elif / #endif 匹配。插入符号必须在 # 上。

    【讨论】:

      【解决方案5】:

      如果由于某种原因这对您不起作用,则可能是某些东西弄乱了您的键盘绑定(它对我不起作用)。不过,您可以轻松地重新启用绑定 - 至少我是这么认为的:

      我试过这个程序:

      • 转到菜单工具 -> 选项 -> 环境 -> 键盘
      • 滚动到或搜索命令 Edit.GotoBrace
      • 分配所需的快捷方式(我的是空的,所以我输入了 CTRL    + ]
      • 一定要点击“分配按钮”

      我试过了,还是不行。我重新启动了 Visual Studio,但它仍然无法正常工作 - 它仅适用于 .cs 文件,但我需要它才能适用于 .vb 文件和文本文件,以及......以及所有文件!

      【讨论】:

      【解决方案6】:

      在我的法语键盘上,它是 CTRL + ^

      【讨论】:

        【解决方案7】:

        在德语键盘上是 Ctrl + ´

        【讨论】:

          【解决方案8】:

          在西班牙语键盘上是 CTRL + ¿(或 CTRL + ¡)。

          【讨论】:

          • 10 分钟发现 WTF 是¡,写入 VS2008 选项菜单。谢谢!
          【解决方案9】:

          在我的丹麦语键盘上,它是 CTRL + Å

          【讨论】:

            【解决方案10】:

            Ctrl + Shift + ] 将选择所有文本。

            【讨论】:

              【解决方案11】:

              为了完整起见,在瑞典语键盘上它是 CTRL + å

              另外,我猜是合乎逻辑的,但值得一提的是 CTRL + shift + å (大写 Å),选择大括号内的所有内容并转到匹配的那个。

              【讨论】:

                【解决方案12】:

                在土耳其语键盘上,它是 Ctrl + ü

                【讨论】:

                  【解决方案13】:

                  在我的葡萄牙语键盘和 EN VS 上,它是 CTRL + « 导航到匹配的大括号和 CTRL + SHIFT + « 如果你打算选择内码。

                  【讨论】:

                    【解决方案14】:

                    在我的意大利语键盘上,它是 CTRL + ^

                    【讨论】:

                      【解决方案15】:

                      在我的 pt-BR(巴西葡萄牙语)键盘上,它实际上是 CTRL + [

                      【讨论】:

                        【解决方案16】:

                        在我的斯洛文尼亚语键盘上,它是 ALT    + Đ

                        【讨论】:

                        • 默认是CTRL+đ
                        【解决方案17】:

                        在 Mac 上使用 command+shift+\

                        来源:对此答案的评论:https://stackoverflow.com/a/37877082/3345085。 在 Visual Studio Code 版本 1.10.2 中测试。

                        【讨论】:

                        • 注意:这适用于 Visual Studio 代码。问题是关于 Visual Studio。 VS Code 有一个separate question
                        【解决方案18】:

                        对于 Visual Studio Code(如 their documentation 所示),请使用 Ctrl+Shift+\

                        设置可以在:

                        文件/首选项/键盘快捷键

                        我正在使用 Visual Studio Code 1.8.0 。注意 Visual Studio Code 对于国际键盘的行为可能会有所不同(如 this answer re: German keyboard 所示)

                        希望这对某人有所帮助。

                        【讨论】:

                        • 注意:这适用于 Visual Studio 代码。问题是关于 Visual Studio。 VS Code 有一个separate question
                        【解决方案19】:

                        在我的荷兰语(比利时)键盘上,它是 CTRL + ^

                        【讨论】:

                          【解决方案20】:

                          转到工具>选项>环境>字体和颜色,选择“大括号匹配(矩形)”并将“项目背景”更改为例如黄色的。这适用于 C# 括号 () {} 和 []。

                          【讨论】:

                          • 是有帮助的,字体和颜色的“显示名称”文本框是大括号匹配矩形所在的位置。
                          • 如果你像我一样有深色主题,青色而不是黄色也会使括号本身更明显。
                          【解决方案21】:

                          能让所有人受益的细节(Linux/Win/Mac)

                          键盘快捷键菜单/编辑器中的命令是editor.action.jumpToBracket,您可以将其设置为您喜欢的任何内容。还有一个叫editor.action.selectToBracket,默认没有快捷方式(至少在Mac上)。

                          在 Mac 上 editor.action.jumpToBracketCmd+Shift+\ 开头 我将其更改为 Ctrl+] 以与其他人在这里所说的一致。我这样做是希望我可以使用 Ctrl+Shift+] 来“将选择扩展到匹配的括号”。这就是导致我发现上述细节的原因。我将 editor.action.selectToBracket 设置为 Ctrl+Shift+] 并得到了我想要的行为。

                          【讨论】:

                            【解决方案22】:

                            在匈牙利语键盘上是 Ctrl + ú

                            【讨论】:

                              【解决方案23】:

                              有点相关,但是对于 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
                              

                              【讨论】:

                              • + ] 的标准美国映射也适用于 HTML 和 CSS。两个标签也会突出显示。
                              【解决方案24】:

                              在德语键盘上的 Visual Studio Code 中,它是 ctrl+shift+^

                              但您必须打开具有正确扩展名的文件 - 例如,它不适用于新的未保存文件。

                              【讨论】:

                              • 注意:这适用于 Visual Studio 代码。问题是关于 Visual Studio。 VS Code 有一个separate question
                              【解决方案25】:

                              在瑞士法语键盘上:使用 CTRL + SHIFT + ^

                              【讨论】:

                                【解决方案26】:

                                在 VS2012 的西班牙语(西班牙)键盘上是 Ctrl + ¡ 如@Keith 所述,但如果您使用 Ctrl + ¿(键入为 Ctrl + Shift + ¡)然后转到 Matching Brace plus 选择两个大括号内的所有代码并那么你就不能再去另一个大括号了。

                                【讨论】:

                                  【解决方案27】:

                                  2021 年 6 月

                                  在与 Visual Studio 2019 和 c# 并行运行 Windows 10 并使用美式键盘的 Mac 上,对我有用的解决方案是在“中编辑快捷方式” 工具 选项 键盘 编辑.GoToBrace

                                  在我的系统上,快捷方式是空白的...

                                  按 Ctl 键和 ] 键并保存快捷键

                                  【讨论】:

                                    猜你喜欢
                                    • 1970-01-01
                                    • 1970-01-01
                                    • 2015-08-21
                                    • 2022-07-10
                                    • 1970-01-01
                                    • 1970-01-01
                                    • 1970-01-01
                                    • 1970-01-01
                                    相关资源
                                    最近更新 更多