Bagaimana cara memilih / menghapus sampai akhir file di vim / gvim?
42
Secara tidak sengaja saya berhasil menyalin-tempel paragraf dalam vim jutaan kali. Bagaimana saya memilih dan kemudian menghapus teks dari posisi saya saat ini hingga akhir file?
Di Windows, ini akan menjadi Ctrl-Shift-End, diikuti oleh Delete.
Ugh, aku tidak akan pernah mengingat semua pintasan vim ini. Cara pintas Windows jauh lebih intuitif.
ripper234
Secara pribadi, saya menemukan vim lebih intuitif. V, masuk ke mode visual G, hampir seperti "pergi", ke akhir file. Dan x, hapus.
Mark Szymanski
10
@ ripper234: jangan mencoba mengingat "cuplikan" untuk melakukan tugas tertentu, fokuslah pada sub perintah. Itu bagian dari keajaiban vim: menggunakan perintah yang lebih kecil ini untuk membangun hal-hal yang lebih besar dan lebih kompleks. Itu hampir sangat fleksibel.
Reid
Dan itu sangat membantu untuk meluangkan waktu dan membaca bagian vim-help-related terkait dengan: h command-you-need-help-for
Gjallar
1
Untuk menambah ini: lari vimtutordari commandline untuk mengenal mereka @ ripper234
Bernhard
48
dadalah menghapus dan Gpindah ke akhir file, sehingga dGakan menghapus ke akhir file. Ini termasuk seluruh baris saat ini; jika Anda berada di garis tengah dan ingin mempertahankan semuanya sebelum posisi saat ini, Anda perlu menggunakan metode Markus
+1 Cara lain untuk mempertahankan bagian dari baris saat ini adalah D<enter>dG: Duntuk menghapus ke EOL, <enter>untuk pindah ke baris berikutnya, dGuntuk menghapus ke EOF.
Jim L.
8
Metode lain: :.,$d
Itu berarti dalam mode ex, alamat baris saat ini untuk mengakhiri, dan hapus.
tidak selalu memungkinkan, lihat "pilih". Bayangkan Anda telah menulis beberapa kode di akhir file (dan menginginkannya di tempat lain), dG memungkinkan Anda memasukkan dengan p | P
relascope
2
vGx
berfungsi dengan baik untuk pemilihan multi baris (dalam paragraf kasus ini), tetapi jika Anda ingin memilih dalam satu baris, ia bertindak secara misterius (memilih dari kursor hingga awal baris).
Dalam hal pemilihan dalam satu baris Anda harus menggunakan:
v$x
Yang masuk ke mode Visual ("v") dan pergi ke akhir baris ("$") dan menghapus ("x") dari posisi saat ini sampai akhir baris.
Vggx tidak bekerja untuk saya, tetapi vG $ d berhasil. vG $ memilih untuk EOF (karakter terakhir dari baris terakhir), lalu perintah apa pun yang ingin Anda jalankan.
= Pendekatan ini (perintah setelah pemilihan) tampaknya bekerja lebih baik. Tentu saja, saya menggunakan Vim 8.1 pada Windows 10, dan beberapa tahun kemudian.
u
.Jawaban:
Masuk ke Mode Visual, pergi ke Akhir File, hapus.
Atau, Anda dapat melakukan:
Untuk menghapus dari posisi saat ini ke awal file.
sumber
vimtutor
dari commandline untuk mengenal mereka @ ripper234dadalah menghapus dan Gpindah ke akhir file, sehingga dGakan menghapus ke akhir file. Ini termasuk seluruh baris saat ini; jika Anda berada di garis tengah dan ingin mempertahankan semuanya sebelum posisi saat ini, Anda perlu menggunakan metode Markus
sumber
D<enter>dG
:D
untuk menghapus ke EOL,<enter>
untuk pindah ke baris berikutnya,dG
untuk menghapus ke EOF.Metode lain:
:.,$d
Itu berarti dalam mode ex, alamat baris saat ini untuk mengakhiri, dan hapus.
sumber
Anda juga bisa mengetik uuntuk membatalkan perubahan yang menghasilkan copy-paste yang salah.
sumber
berfungsi dengan baik untuk pemilihan multi baris (dalam paragraf kasus ini), tetapi jika Anda ingin memilih dalam satu baris, ia bertindak secara misterius (memilih dari kursor hingga awal baris).
Dalam hal pemilihan dalam satu baris Anda harus menggunakan:
Yang masuk ke mode Visual ("v") dan pergi ke akhir baris ("$") dan menghapus ("x") dari posisi saat ini sampai akhir baris.
sumber
Vggx tidak bekerja untuk saya, tetapi vG $ d berhasil. vG $ memilih untuk EOF (karakter terakhir dari baris terakhir), lalu perintah apa pun yang ingin Anda jalankan.
= Pendekatan ini (perintah setelah pemilihan) tampaknya bekerja lebih baik. Tentu saja, saya menggunakan Vim 8.1 pada Windows 10, dan beberapa tahun kemudian.
sumber