编程中的一个常见任务是删除当前块上的条件.
在vim中,是否有一种简单的方法可以删除当前块的第一行('if'语句)和最后一行(结束大括号),并可能相应地重新启动.如果内置的内容没有简单的组合键,那么编写脚本的简单方法是什么?
进一步考虑这一点,当然if语句的条件可能跨越多行,因此可能需要一个脚本来完全捕获它.但是,对于我的代码,只删除第一行和最后一行将捕获95%的情况.
可能解决方案
yiBvaBVpgv<
Run Code Online (Sandbox Code Playgroud)
yiB
猛拉内部块vaBV
通过选择一个块,然后按行选择它p
粘贴在视觉选择的文本上gv<
重新选择文本和去缩进环绕像映射也删除周围的块:
nnoremap dsB yiBvaBVpgv<
Run Code Online (Sandbox Code Playgroud)
ib提供了一个更短的解决方案 该解决方案将发生变异的可视标记:'<
,'>
diB]pkdk
Run Code Online (Sandbox Code Playgroud)
diB
删除当前内部块]p
将新删除的文本粘贴到块的末尾下方,但调整缩进.kdk
向上移动一行然后删除2行,从而删除块的开始和结束.