Vim:如何删除嵌套块中的闭合方括号
我在Python中有一个很长的嵌套列表:Vim:如何删除嵌套块中的闭合方括号,vim,Vim,我在Python中有一个很长的嵌套列表: [{'name': 'John', 'args': [[1], [165], [22]]}, {'name': 'Tom', 'args': [[2], [180], [28]]}, ... {'name': 'James', 'args': [[143], [174], [45]]}, # Delete from here on ... {'name': 'Ron', 'args': [[298], [199], [38]]}] 并希望从中间某处删除
[{'name': 'John', 'args': [[1], [165], [22]]},
{'name': 'Tom', 'args': [[2], [180], [28]]},
...
{'name': 'James', 'args': [[143], [174], [45]]}, # Delete from here on
...
{'name': 'Ron', 'args': [[298], [199], [38]]}]
并希望从中间某处删除,直到结束括号。如果我有一个类似的带圆括号或大括号的嵌套块,我可以使用
d])
或d]}
。这是可以预期的,但不是。不幸的是,由于嵌套结构,f、t
也不是好的选择。在这种特殊情况下,您可以执行以下操作:
d/}]
(并按enter键)删除,直到搜索模式:}]
通常,当我无法快速查看内置的运动/文本对象情况时,使用搜索作为运动是我的目标。您甚至可以通过使用{pattern}/{offset}功能复制f/t区别。例如
/{pattern}/s-
将光标移动到{pattern}开始之前
:帮助搜索偏移量使用
vi]o``d
做这个把戏
将选择匹配“]中的全文vi]
将光标移动到匹配“[”的开头o
将光标移动到最后一个位置`
删除所选内容d
这是最直观的方法。在我的例子中,如果
}
和]
之间有空格或换行符,我将解决方案扩展到d/}\\u s*]
。谢谢你的帮助。如果我不在内方括号内,这同样有效。很抱歉,我不能将两个答案都标记为解决方案。没问题,请选择您认为可以帮助他人的答案。