it-swarm-id.com

Hapus dari kursor ke akhir baris di `vi`

Saya tahu saya mungkin telah melihat ini jutaan kali di semua dokumen vi yang saya baca, tetapi sepertinya saya tidak dapat menemukan penghapusan dari kursor hingga akhir perintah baris.

334
Falmarri

Perintah dw akan menghapus dari posisi kursor saat ini ke awal karakter Word berikutnya. Perintah d$ (perhatikan, itu tanda dolar, bukan tanda 'S') akan dihapus dari posisi kursor saat ini ke akhir baris saat ini. D adalah sinonim untuk d$.

499
Tok

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 itu akan menghapus dari posisi kursor sampai akhir baris dan menempatkan Anda dalam mode [INSERT].

54
Brad Johnson

Salah satu hal yang menyenangkan tentang vi adalah struktur perintah logisnya. d diikuti oleh perintah gerakan d hapus ke target gerakan itu. $ pindah ke akhir baris (mnemonic: like in regexps). Jadi d$ menghapus ke akhir baris. Demikian pula, e pindah ke e nd dari Word saat ini, dan w pindah ke awal berikutnya w ord; jadi de menghapus akhir dari Word saat ini, dan dw juga menghapus spasi putih berikut.

Anda mungkin ingin menggunakan D. Pindahkan kursor ke karakter pertama yang ingin Anda hapus, lalu tekan shift-D. Semuanya hilang. Sebenarnya, itu ada di buffer cut default, jadi Anda bisa 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.

21
Bruce Ediger

Untuk menghapus rentang garis setelah posisi kursor, 3D akan menghapus dari kursor hingga akhir baris, serta dua baris berikutnya sepenuhnya (mis., menghapus 3 baris setelah posisi kursor).

misalnya untuk teks berikut (kursor direpresentasikan sebagai |),

If there's a cursor |in the line
here
we
go

Menggunakan perintah 3D akan menampilkan:

If there's a cursor
go
1
Nick Bull

Saya pikir cara pintas mode insert bisa berguna.

Dalam mode sisipkan mungkin akan lebih baik mulai mengubah sampai akhir baris (letakkan ini di ~/.vimrc) Anda:

inoremap <C-l> <C-o>C

Jadi Anda telah, seperti yang telah dikatakan, D dalam mode normal dan Ctrl+l dalam mode sisipkan. Seperti yang Anda lihat, Anda juga C yang mulai berubah hingga akhir baris.

<C-o> ......... insert normal keystroke in insert mode

Aku telah memilih Ctrl-l karena l ada di bawah jari Anda. Itu Ctrl-k sudah digunakan untuk menyisipkan digraf.

Saya telah mencari melalui :h i_Ctrl Untuk beberapa keybindings gratis, dan ini sebenarnya adalah masalah yang lebih besar ketika membuat pintasan baru untuk melakukan tindakan di vim.

1
SergioAraujo