Apa padanan emacs dari vi dd? Saya ingin menghapus baris saat ini. Mencoba CTRL+ ktetapi hanya menghapus dari posisi saat ini.
122
C-a # Go to beginning of line
C-k # Kill line from current point
Ada juga
C-S-backspace # Ctrl-Shift-Backspace
yang memanggil M-x kill-whole-line
.
Jika Anda ingin menyetel pengikatan kunci global yang berbeda, Anda harus meletakkan ini di ~ / .emacs:
(global-set-key "\C-cd" 'kill-whole-line) # Sets `C-c d` to `M-x kill-whole-line`
Jika Anda ingin menghapus sejumlah baris, Anda dapat mengawali perintah dengan angka:
C-u 5 C-S-backspace # deletes 5 whole lines
M-5 C-S-backspace # deletes 5 whole lines
C-u C-S-backspace # delete 4 whole lines. C-u without a number defaults to 4
C-u -5 C-S-backspace # deletes previous 5 whole lines
M--5 C-S-backspace # deletes previous 5 whole lines
Terkadang saya juga merasa C-x z
terbantu:
C-S-backspace # delete 1 whole line
C-x z # repeat last command
z # repeat last command again.
# Press z as many times as you wish.
# Any other key acts normally, and ends the repeat command.
C-x z
, itu sangat keren. Dan jawaban yang bagus dan tepat btw.C-k C-k
yang berfungsi sepertid$ S-j
in vim, tetapi ini dapat menghapus baris ke depan dengan cukup baik.C-cd
?Jika Anda tidak ingin mematikan baris (yang akan memasukkannya ke clipboard OS dan mematikan cincin) tetapi cukup hapus:
sumber
Metode lain untuk menghapus baris tanpa menempatkannya ke dalam kill ring:
Ini akan meninggalkan titik di awal baris kosong. Untuk menghilangkan ini juga, Anda mungkin ingin menambahkan sesuatu seperti
(delete-blank-lines)
di akhir fungsi, seperti dalam contoh ini, yang mungkin sedikit kurang intuitif:sumber
Cara tercepat / termudah untuk menghapus (membunuh) satu baris penuh, dari titik mana pun di baris, tanpa memilih apa pun, adalah:
Ini serbaguna dalam menghapus apa pun yang dipilih, atau garis secara default jika tidak ada yang dipilih.
Dengan adanya pertanyaan tersebut, Anda mungkin juga tertarik untuk mereplikasi "yank" Vim,
yy
(meskipun dalam bahasa Emacs, "yank" membingungkan adalah "put" Vim,p
). Ini adalah:Bagus dan kongruen, dan cukup mudah diingat. Bahkan sedikit mirip dengan Vim
i_CTRL-W
.Setelah Anda memasukkan sesuatu ke dalam kill ring dengan salah satu cara di atas, Anda mungkin ingin "menarik" (menempelkannya):
(Perhatikan bahwa CS-backspace mungkin tidak berfungsi di terminal Emacs.)
sumber
Daripada memiliki kunci terpisah untuk menghapus baris, atau harus memanggil prefix-argument. Anda dapat menggunakan crux-smart-kill-line yang akan "membunuh sampai akhir baris dan mematikan seluruh baris pada panggilan berikutnya". Tapi jika Anda lebih memilih
delete
bukankill
, Anda dapat menggunakan kode di bawah ini.Untuk operasi point-to-string (kill / delete) saya sarankan untuk menggunakan zop-to-char
sumber
sumber