Bagaimana cara menghapus blok teks dari baris kursor saat ini ke nomor baris tertentu di vi?
Sebagai contoh:
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%">
Di Vim saya biasanya akan menggunakan mode pemilihan visual untuk ini, tetapi saya tidak memiliki Vim yang saya miliki di server ini. Ini juga akan lebih cepat untuk menentukan nomor baris daripada menghitung berapa banyak baris dalam blok dalam beberapa kasus.
Jawaban:
Anda dapat menggunakan sesuatu seperti
d63G
menghapus dari baris saat ini hingga baris 63.sumber
Untuk menghapus dari a ke b digunakan
dari saat ini ke penggunaan b
(di mana kode a dan b diganti dengan nomor Anda)
sumber
Sama dengan jawaban yang diterima, tetapi sedikit lebih cepat untuk mengetik:
d63gg
menghapus dari baris saat ini ke baris 63.sumber
Mengapa menghitung garis? Pergi ke baris terakhir yang ingin Anda hapus dan tandai dengan mengetik
ma
yang "menandai" dengan pengenal "a". Kemudian naik ke baris teratas yang ingin Anda hapus dan ketikd'a
hapus untuk menandai "a". Bam!sumber
Untuk menghapus satu blok baris di Vi:
n
: dari nomor barism
: adalah ke nomor barisDari baris saat ini sampai nomor baris tertentu-
:,md
dari / ke nomor baris tertentu
:n,md
sumber