Hapus dari posisi kursor saat ini ke nomor baris tertentu di editor vi


108

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:


210

Anda dapat menggunakan sesuatu seperti d63Gmenghapus dari baris saat ini hingga baris 63.


5
Oooh, solusi dalam mode normal - bahkan lebih baik!
seanhodges

50
Untuk menambah ini, jika Anda ingin menghapus baris 45 hingga 64, Anda lakukan: 45,64d
ThinkCode

110

Untuk menghapus dari a ke b digunakan

:a,bd

dari saat ini ke penggunaan b

:,bd

(di mana kode a dan b diganti dengan nomor Anda)


1
Luar biasa. Saya bisa melakukan ":., 63d" untuk melakukan contoh penghapusan di atas. Terima kasih, mengerikan!
seanhodges

13

Sama dengan jawaban yang diterima, tetapi sedikit lebih cepat untuk mengetik:

d63gg menghapus dari baris saat ini ke baris 63.


8

Mengapa menghitung garis? Pergi ke baris terakhir yang ingin Anda hapus dan tandai dengan mengetik mayang "menandai" dengan pengenal "a". Kemudian naik ke baris teratas yang ingin Anda hapus dan ketik d'ahapus untuk menandai "a". Bam!


Tidak berfungsi (vim 7.4.160, CentOS). Mungkin perlu beberapa ekstensi atau konfigurasi khusus.
Khokhlov Jerman

6

Untuk menghapus satu blok baris di Vi:

n: dari nomor baris

m: adalah ke nomor baris

  1. Dari baris saat ini sampai nomor baris tertentu-

    :,md

  2. dari / ke nomor baris tertentu

    :n,md

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.