Theo tài liệu:
<C-delete>
chạy lệnh kill-word (tìm thấy trong bản đồ toàn cầu), là một hàm Lisp được biên dịch tương tác trong ‘simple.el’
.
Nó bị ràng buộc với <C-delete>, M-d
.
(ARG từ giết)
Giết nhân vật về phía trước cho đến khi gặp phải kết thúc của một từ. Với đối số ARG, làm điều này nhiều lần.
Bây giờ, hãy duyệt mã nguồn:
(defun kill-word (arg)
"Kill characters forward until encountering the end of a word.
With argument ARG, do this that many times."
(interactive "p")
(kill-region (point) (progn (forward-word arg) (point))))
Sau đó, bên trong tài liệu cho kill-region
chức năng chúng ta tìm thấy:
Giết ("cắt") văn bản giữa điểm và dấu.
This deletes the text from the buffer and saves it in the kill ring
. Lệnh [yank] có thể lấy nó từ đó. (Nếu bạn muốn lưu vùng mà không giết nó, hãy sử dụng [kill-ring-save].)
[...]
Các chương trình Lisp nên sử dụng chức năng này để giết văn bản. (Để xóa văn bản, sử dụng delete-region
.)
Bây giờ, nếu bạn muốn đi xa hơn, đây là một số chức năng bạn có thể sử dụng, để xóa mà không cần sao chép vào kill-ring:
(defun my-delete-word (arg)
"Delete characters forward until encountering the end of a word.
With argument, do this that many times.
This command does not push text to `kill-ring'."
(interactive "p")
(delete-region
(point)
(progn
(forward-word arg)
(point))))
(defun my-backward-delete-word (arg)
"Delete characters backward until encountering the beginning of a word.
With argument, do this that many times.
This command does not push text to `kill-ring'."
(interactive "p")
(my-delete-word (- arg)))
(defun my-delete-line ()
"Delete text from current position to end of line char.
This command does not push text to `kill-ring'."
(interactive)
(delete-region
(point)
(progn (end-of-line 1) (point)))
(delete-char 1))
(defun my-delete-line-backward ()
"Delete text between the beginning of the line to the cursor position.
This command does not push text to `kill-ring'."
(interactive)
(let (p1 p2)
(setq p1 (point))
(beginning-of-line 1)
(setq p2 (point))
(delete-region p1 p2)))
; bind them to emacs's default shortcut keys:
(global-set-key (kbd "C-S-k") 'my-delete-line-backward) ; Ctrl+Shift+k
(global-set-key (kbd "C-k") 'my-delete-line)
(global-set-key (kbd "M-d") 'my-delete-word)
(global-set-key (kbd "<M-backspace>") 'my-backward-delete-word)
Phép lịch sự của ErgoEmacs
undo
. Mặc dù đoán hoang dã.