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

ahe*_*ahe 8 vim

根据http://vimdoc.sourceforge.net/htmldoc/usr_41.html#function-list vim脚本有函数setline()和append()来修改当前缓冲区但是如何从脚本中删除一行?使用setline(1,""),该行只是清空但我想摆脱它.

jam*_*san 10

您使用ex命令:d. :5d删除第5行.

  • 不过,能够在不影响撤销列表的情况下删除一行是很好的. (3认同)
  • 我仍然有点疑惑为什么没有API函数做一些如此重要的事情,但除了'exe':1,".最后一行."d"'做我想要的一切(实际上我想删除整个范围的线). (2认同)
  • 因为不需要函数来做到这一点。你有一个可以做到这一点的命令。Vimscript 是所有通常可用的 ex 命令的基础,加上附加功能,以提供通过 ex 命令不可用(或容易获得)的功能。 (2认同)

ZyX*_*ZyX 8

一个补充:不execute line 'delete'要这样做execute line 'delete _':删除到黑洞寄存器有很少的副作用.没有_它将删除默认寄存器,编号寄存器1,并将移动所有其他编号的寄存器(除了0为yanks):1- > 2,2- > 3,...,9- > void.