如何删除VS代码中的匹配括号



我知道你可以用 Ctrl + Shift + \ 在匹配的括号之间跳转。我想将光标放在括号之后,并尽可能轻松地删除该括号及其匹配的括号。

由于使用 Alt +

单击您可以有多个选择,因此我正在寻找类似于以下内容的内容:Ctrl + Shift + Alt + \ 用于将另一个 光标放在匹配的括号上,然后使用一个退格删除这两个光标。

是否有删除一对匹配的括号/括号的快捷方式?

有一个名为Bracketeer的扩展可以做你想要的。

首先,安装

按 Ctrl-p,然后按 ext install pustelto.bracketeer ,后跟一个回车键。

然后,您可以将以下内容添加到您的keybindings.json

  {
    "key": "ctrl+alt+backspace",
    "command": "bracketeer.removeBrackets"
  },

然后,可以使用 ctrl-alt-backspace 删除匹配的括号。

在 v1.77 预览体验成员构建中(可能在 2023 年 4 月初的稳定版 v1.77 中)是一个新命令:

Remove Brackets
editor.action.removeBrackets

默认情况下,在Windows上绑定为Ctrl + Alt + Backspace,在Mac上绑定为Cmd + Opt + Backspace

此命令将删除光标位置周围的匹配括号。 因此,光标可以在具有包围括号的代码或文本中的任何位置 - 它不必紧挨着其中一个括号。 (不过,删除括号后它似乎不会重新格式化)。

适用于 ()、{} 和 []

Sub DeleteMatchingBrace()
Dim sel As TextSelection = DTE.ActiveDocument.Selection
Dim ap As VirtualPoint = sel.ActivePoint
If (sel.Text() <> "") Then Exit Sub
' reposition
DTE.ExecuteCommand("Edit.GoToBrace") : DTE.ExecuteCommand("Edit.GoToBrace") 
If (ap.DisplayColumn <= ap.LineLength) Then sel.CharRight(True)
Dim c As String = sel.Text
Dim isRight As Boolean = False
If (c <> "(" And c <> "[" And c <> "{") Then
    sel.CharLeft(True, 1 + IIf(c = "", 0, 1))
    c = sel.Text
    sel.CharRight()
    If (c <> ")" And c <> "]" And c <> "}") Then Exit Sub
    isRight = True
End If
Dim line = ap.Line
Dim pos = ap.DisplayColumn
DTE.ExecuteCommand("Edit.GoToBrace")
If (isRight) Then sel.CharRight(True) Else sel.CharLeft(True)
sel.Text = ""
If (isRight And line = ap.Line) Then pos = pos - 1
sel.MoveToDisplayColumn(line, pos)
sel.CharLeft(True)
sel.Text = ""
End Sub

然后在VS中为此宏添加快捷方式

最新更新