[英]Vim: How to delete to closing square bracket in nested block
我在 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]]}]
并希望从中间的某处删除直到右括号。 如果我有一个类似的带有圆括号或大括号的嵌套块,我可以使用d])
或d]}
。 这按预期工作,但d]]
不是。 不幸的是,由于嵌套结构, f, t
也不是好的选择。
在这种特殊情况下,您可以这样做:
d/}]
(并按回车键)删除,直到搜索模式:}]
一般来说,当我无法快速查看内置动作/文本 object 情况时,我会选择使用搜索作为动作。 您甚至可以使用 {pattern}/{offset} 功能复制 f/t 区别。 例如
/{pattern}/s-
将 cursor 移动到 {pattern} 开始之前。
:help 搜索偏移量
利用
vi]o``d
做这个把戏。
vi]
将 select 匹配“]”内的整个文本o
将 cursor 移动到匹配“[”的开头``
将 cursor 移动到最后 positiond
删除选择
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.