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を自由に使用できません。また、場合によってはブロック内の行数を数えるよりも、行番号を指定する方が簡単です。
d63G
のようなものを使用して、現在の行から63行目まで削除できます。
aからbを削除するには
:a,bd
現在からbまで
:,bd
(コード内のaおよびbは数字に置き換えられます)
受け入れられた答えと同じですが、入力するのが少し速くなります:
d63gg
は、現在の行から63行目までを削除します。
Viで行ブロックを削除するには:
n
:はfrom行番号
m
:はto行番号
現在の行から特定の行番号まで
:,md
特定の行番号から
:n,md
行を数える理由削除する最後の行に移動し、ma
と入力してマークします。これにより、識別子「a」で「マーク」されます。次に、削除する一番上の行に移動して、d'a
「a」をマークする削除。バム!