如何在 VS Code 中删除匹配的括号?

问题描述 投票:0回答:4

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

由于使用 Alt + Click 可以进行多个选择,我一直在寻找类似的东西: Ctrl + Shift + Alt + \ 将另一个光标放在匹配的括号上,然后使用一个退格键。

有没有删除一对匹配的括号的快捷方式?

visual-studio-code
4个回答
44
投票

有一个名为 Bracketeer 的扩展可以满足您的需求。

首先,安装

Ctrl-p,然后按

ext install pustelto.bracketeer
,然后按 Enter 键。

然后您可以将以下内容添加到您的

keybindings.json

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

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


21
投票

在 v1.77 Insiders Build now(可能在 2023 年 4 月上旬的稳定版 v1.77 中)有一个新命令:

Remove Brackets
editor.action.removeBrackets

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

此命令将删除光标位置周围的匹配括号。因此,光标可以位于带有括号的代码或文本中的任何位置 - 它不必位于括号之一的旁边。 (尽管删除括号后它似乎没有重新格式化)。


0
投票

在设置中,

Editor: Auto Closing Delete
就是我正在寻找的——将其从
auto
更改为
always
就可以了。

编辑:这只适用于相邻的括号


-5
投票

这适用于 ()、{} 和 []

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中添加这个宏的快捷方式

© www.soinside.com 2019 - 2024. All rights reserved.