2017-01-10 23 views
3

我知道你可以按Ctrl ++\匹配的括号之间跳转。我希望将光标放在括号后面,并尽可能简单地删除该括号及其匹配的一个。如何删除VS代码中的匹配括号?

由于与Alt键 +点击你可以有多个选择,我一直在寻找类似的东西:按Ctrl + + Alt键 + \用于放置在匹配支架另一光标,然后用一个单独的退格键删除这两个文件。

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

回答

-3

这适用于(){}和[]

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

+0

如何将它添加到VS代码? – Guimo

+0

如果你想要,你可以创建一个专门为那个或一个方法的类。 –

+0

但该语言是Visual Basic,对不对?请注意,我希望它在Visual Studio Code中工作,而不是在Visual Studio中,也许你在考虑后者(如果没有,我完全失去了)。 – Guimo