Saya tahu saya mungkin telah melihat ini jutaan kali di semua dokumen VI yang saya baca, tetapi saya tidak bisa menemukan penghapusan dari kursor hingga akhir perintah baris.
Saya tahu saya mungkin telah melihat ini jutaan kali di semua dokumen VI yang saya baca, tetapi saya tidak bisa menemukan penghapusan dari kursor hingga akhir perintah baris.
Jawaban:
Perintah dwakan menghapus dari posisi kursor saat ini ke awal karakter kata berikutnya. Perintah d$(perhatikan, itu tanda dolar, bukan 'S') akan menghapus dari posisi kursor saat ini ke akhir baris saat ini. Dadalah sinonim untuk d$.
dw
, tapi saya kira saya hanya berasumsi akan ada perintah "hapus sisa baris ini". Misalnya baris saya memiliki ip=|10.1.1.1
dengan |
menjadi lokasi kursor. Apakah ada perintah yang akan menghapus semua 10.1.1.1
?
d$
:!rm -f %
dan kemudian :q!
. Itu menghapus seluruh file.
d^
('d' + caret) ... pada dasarnya d + setiap karakter yang biasanya akan menggerakkan kursor saya pikir, tapi saya belajar Vim sendiri, jadi saya bisa salah tentang itu.
Seperti yang disebutkan orang lain: Anda dapat menggunakan d$
atau D
( shift- d) untuk menghapus dari posisi kursor hingga akhir baris.
Apa yang biasanya saya temukan lebih bermanfaat adalah c$
atau C
( shift- c) karena akan menghapus dari posisi kursor sampai akhir baris dan menempatkan Anda dalam mode [INSERT].
D
bagi kebanyakan orang, menurut saya, karena itu tidak membuat Anda kembali ke ruang di akhir baris.
i
insert yang memasukkan sebelum kursor, dan a
yang memasukkan setelah kursor. Jika kursor Anda ada di ujung baris dan Anda ingin memasukkan di ujung baris, Anda bisa menggunakan a
.
Salah satu hal yang menyenangkan tentang vi adalah struktur perintah logisnya. d
diikuti oleh perintah gerak d dihapus ke target gerakan itu. $
bergerak ke akhir baris (mnemonic: like in regexps). Jadi, d$
hapus sampai akhir baris. Demikian pula, e
bergerak ke e nd dari kata saat ini, dan w
bergerak ke awal berikutnya w ord; jadi de
menghapus akhir kata saat ini, dan dw
juga menghapus spasi putih berikut.
<kbd>
untuk kunci aktual, bukan untuk urutan perintah. Misalnya <kbd>Ctrl</kbd>+<kbd>C</kbd>
, tapi d$
.
Anda mungkin ingin menggunakan D. Pindahkan kursor ke karakter pertama yang ingin Anda hapus, lalu tekan shift-D. Semuanya hilang. Sebenarnya, ini ada di buffer cut default, jadi Anda dapat P atau p menempelkannya kembali.
Saya menggunakan Dp (hapus ke akhir baris, lalu pasang kembali), pindah ke akhir baris lain, lalu p lagi untuk menempelkan teks yang sama di akhir baris lainnya ini. Bekerja sangat baik dalam file konfigurasi, di mana Anda perlu meletakkan beberapa URL yang rumit di dua tempat atau lebih.
Saya pikir cara pintas mode insert bisa berguna.
Dalam mode sisipkan mungkin akan lebih baik mulai mengubah sampai akhir baris (letakkan ini di Anda ~/.vimrc
):
inoremap <C-l> <C-o>C
Jadi Anda telah, seperti yang telah dikatakan, Ddalam mode normal dan Ctrl+ ldalam mode insert. Seperti yang Anda lihat, Anda juga Cmulai mengubah hingga akhir baris.
<C-o> ......... insert normal keystroke in insert mode
Saya telah memilih Ctrl- lkarena l
ada di bawah jari Anda. The Ctrl- ksudah digunakan untuk menyisipkan digraf.
Saya telah mencari- :h i_Ctrl
cari beberapa keybindings gratis, dan itu sebenarnya masalah yang lebih besar ketika datang untuk membuat cara pintas baru untuk melakukan tindakan di vim.
Untuk menghapus rentang garis dari setelah posisi kursor, 3Dakan menghapus dari kursor hingga akhir baris, serta dua baris berikutnya sepenuhnya (yaitu, menghapus 3 baris setelah posisi kursor).
misalnya untuk teks berikut (kursor diwakili sebagai |
),
If there's a cursor |in the line
here
we
go
Menggunakan perintah 3Dakan menampilkan:
If there's a cursor
go