删除 Vim 中两个括号之间的所有内容,包括换行符
Delete everything between two brackets in Vim, including newlines
假设我有以下 python 数组文字:
def f():
arr = [
1,
2,
3
]
我要把括号里的都删掉,变成这样:
def f():
arr = []
如何使用 vim 中的最少命令来做到这一点?
这些是我的一些尝试:
使用di]
会删除文本,但不会删除空的换行符,留下很多我不得不删除的空格:
def f():
arr = [
]
使用da]
会删除换行符,但也会删除括号:
def f():
arr =
Select 可视模式下的行 (v
) 并使用 J
删除换行符。然后使用 di[
.
或者如果有很多行,首先di[
,然后将光标移动到第一行然后J
。这可能会在括号之间留下 space,必须使用 x
.
将其删除
将光标放在第一个左括号 ([
) 上,按 V
,然后按 %
。这将 select 您可以加入的区块 J
,然后是 di[
。
你可以简单地做:
ca[[]<Esc>
或:
ca][]<Esc>
参见:help text-objects
。
我发现使用代码格式化程序快捷方式可以节省很多时间
如果你安装 vim prettier,你可以 di[ <leader>p
例如在 JS 中使用格式化程序意味着我不必删除额外的间距、跳到行尾插入 ;
或修复缩进等
假设我有以下 python 数组文字:
def f():
arr = [
1,
2,
3
]
我要把括号里的都删掉,变成这样:
def f():
arr = []
如何使用 vim 中的最少命令来做到这一点?
这些是我的一些尝试:
使用
di]
会删除文本,但不会删除空的换行符,留下很多我不得不删除的空格:def f(): arr = [ ]
使用
da]
会删除换行符,但也会删除括号:def f(): arr =
Select 可视模式下的行 (v
) 并使用 J
删除换行符。然后使用 di[
.
或者如果有很多行,首先di[
,然后将光标移动到第一行然后J
。这可能会在括号之间留下 space,必须使用 x
.
将光标放在第一个左括号 ([
) 上,按 V
,然后按 %
。这将 select 您可以加入的区块 J
,然后是 di[
。
你可以简单地做:
ca[[]<Esc>
或:
ca][]<Esc>
参见:help text-objects
。
我发现使用代码格式化程序快捷方式可以节省很多时间
如果你安装 vim prettier,你可以 di[ <leader>p
例如在 JS 中使用格式化程序意味着我不必删除额外的间距、跳到行尾插入 ;
或修复缩进等