在vi编辑器中从当前光标位置删除给定的行号

如何从vi当前光标行中删除一段文本到给定的行号?

例如:

49 <j:set var="changeSet" value="${build.changeSet}" /> <----- delete from here (cursor position) 50 <j:if test="${changeSet!=null}"> 51 <j:set var="hadChanges" value="false" /> 52 <TABLE width="100%"> 53 <TR><TD class="bg1" colspan="2"><B>CHANGES</B></TD></TR> 54 <j:forEach var="cs" items="${changeSet.logs}" varStatus="loop"> 55 <j:set var="hadChanges" value="true" /> 56 <j:set var="aUser" value="${cs.hudsonUser}"/> 57 <TR> 58 <TD colspan="2" class="bg2">${spc}Revision <B>${cs.revision}</B> by 59 <B><j:choose> 60 <j:when test="${aUser!=null}">${aUser.displayName}: </j:when> 61 <j:otherwise>${cs.user}: </j:otherwise> 62 </j:choose></B> 63 <B>(${cs.msgAnnotated})</B> <----- to here (line 63) 64 </TD> 65 </TR> 66 <j:forEach var="p" items="${cs.paths}"> 67 <TR> 68 <TD width="10%"> 

在Vim中,我通常会使用视觉select模式,但是我没有在这个服务器上使用Vim。 在某些情况下,指定一个行号,而不是统计块内有多less行,也会更快。

你可以使用类似d63G东西从当前行删除,直到63行。

ab删除使用

 :a,bd 

从目前到b的使用

 :,bd 

(代码中的ab被您的数字replace)

与接受的答案相同,但键入的速度稍快:

d63gg从当前行删除到第63行。

为什么要数线? 转到要删除的最后一行,并通过inputma标记它,标记为“a”。 然后转到您要删除的顶行,inputd'a删除以标记“a”。 巴姆!

要在Vi中删除一行代码块:

n来自行号

m :是行号

  1. 从当前行到给定的行号 –

    :,md

  2. 从/到特定的行号

    :n,md