【发布时间】:2013-07-08 20:55:07
【问题描述】:
我经常用其他一些文本行包围一些代码/文本。为了一个具体的例子,假设我有一些文字:
this is
some text
然后我有一个宏可以让我将它(在突出显示行之后)转换为
if false then
this is
some text
end;
我用来执行此操作的宏是:
nmap <space>i ccif false then<CR><c-r>"end;<esc>
vmap <space>i cif false then<CR><c-r>"end;<esc>
但是我希望能够创建宏然后删除周围的文本。也就是说,如果光标被“if false then”和“end;”行包围。那么这些行应该被删除。
有什么想法可以创建这样的宏吗?
请注意,我查看了环绕.vim,但没有找到使用该包的方法。
【问题讨论】:
-
仅
if-end块?它也可以有“else, elif/else if...end”吗?嵌套的if/else/end呢? “这是一些文本”总是正确缩进吗?它可以有类似//if true we don't do this的 cmets 吗?或者您只是想对上述问题中的示例进行“删除周围的线条”? -
进行这项工作对我来说已经很简单了。是的,下一步将是处理更复杂的结构(尽管我所描述的理想情况下会自动处理“嵌套”行——因为它只会删除光标周围的第一组)。