假设我有以下 python 数组文字:
def f():
arr = [
1,
2,
3
]
我想删除括号中的所有内容,使其变成这样:
def f():
arr = []
如何在 vim 中使用最少的命令来做到这一点?
这些是我的一些尝试:
使用
di]
将删除文本,但不会删除空换行符,留下大量我必须删除的空白:
def f():
arr = [
]
使用
da]
将删除换行符,还会删除括号:
def f():
arr =
你可以简单地做:
ca[[]<Esc>
或:
ca][]<Esc>
参见
:help text-objects
。
将光标放在第一个左括号 (
[
) 上,按 V
,然后按 %
。这将选择您可以加入的区块 J
,然后加入 di[
。
在可视模式下选择行 (
v
) 并使用 J
删除换行符。然后使用di[
。
或者如果有很多行,请先
di[
,然后将光标移动到顶行,然后J
。这可能会在括号之间留下空格,必须使用 x
将其删除。
我发现使用代码格式化程序快捷方式可以节省大量时间
如果你安装了vim prettier,你可以做
di[ <leader>p
例如,在 JS 中使用格式化程序意味着我不必删除额外的空格,跳到行尾插入
;
,或修复缩进等
您可以使用这样的正则表达式:
:%s/\[\_.\{-}\]/[]/g
\_.
匹配包括换行符在内的任何字符,\{-}
是非贪婪命令