在 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 中,我通常会使用可视化选择模式,但是在这个服务器上我没有 Vim。在某些情况下,指定行号比计算块中有多少行更快。

76723 次浏览

使用从 删除到 B

:a,bd

从当前到 B使用

:,bd

(其中代码中的 B被数字替换)

您可以使用类似 d63G的内容从当前行删除到第63行。

在 Vi 中删除一段代码行:

来自行号

m: is line number

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

    :,md

  2. from/to specific line numbers

    :n,md

Same as the accepted answer, but slightly faster to type:

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

为什么要数台词?转到您想删除的最后一行,并通过键入 ma来标记它,ma用标识符“ a”来“标记”它。然后转到要删除的顶行,键入 d'a for delete 以标记“ a”。砰!