在vim脚本中从缓冲区中删除一行

在vim脚本中从缓冲区中删除一行,vim,Vim,根据vim,脚本有函数setline()和append()来修改当前缓冲区,但如何从脚本中删除一行?使用setline(1“”)时,该行仅为空,但我想将其清除。您可以使用ex命令:5d删除第5行 @ahe 1delete %delete 1,$delete 无需在此处执行一个补充:不要执行执行行“删除”,执行执行行“删除”:删除到黑洞寄存器的副作用最小。如果没有,它将删除默认寄存器、编号寄存器1,并将移动所有其他编号寄存器(除了用于美国佬的0):1->2,2->3…,9->void.我仍然有点

根据vim,脚本有函数setline()和append()来修改当前缓冲区,但如何从脚本中删除一行?使用setline(1“”)时,该行仅为空,但我想将其清除。

您可以使用ex命令<代码>:5d删除第5行

@ahe
1delete
%delete
1,$delete

无需在此处执行

一个补充:不要执行
执行行“删除”
,执行
执行行“删除”
:删除到黑洞寄存器的副作用最小。如果没有
,它将删除默认寄存器、编号寄存器
1
,并将移动所有其他编号寄存器(除了用于美国佬的
0
):
1
->
2
2
->
3
…,
9
->void.

我仍然有点困惑,为什么除了“exe”:1“,没有API函数来做如此重要的事情。最后一行。“d”完成了我想要的一切(实际上我想删除一整段行),因为不需要函数来完成。你有一个命令可以做到这一点。Vimscript是所有通常可用的ex命令的基础,加上额外的功能,以提供通过ex命令不可用(或不易获得)的功能。不过,如果能够删除一行而不影响撤消列表,那就太好了。