Bạn có thể sử dụng kill-whole-line
để tiêu diệt toàn bộ điểm dòng đang bật. Vị trí của điểm không quan trọng. Lệnh này được ràng buộc C-S-DELtheo mặc định.
Bạn cũng có thể ra lệnh kill-line
(ràng buộc C-k) để giết toàn bộ dòng bằng cách đặt biến kill-whole-line
thành nil
giá trị không :
(setq kill-whole-line t)
Lưu ý rằng điểm phải ở đầu dòng để làm việc này.
Sau đó, có hai viên đá quý (thông qua emacs-fu ):
(defadvice kill-region (before slick-cut activate compile)
"When called interactively with no active region, kill a single line instead."
(interactive
(if mark-active
(list (region-beginning) (region-end))
(list (line-beginning-position) (line-beginning-position 2)))))
(defadvice kill-ring-save (before slick-copy activate compile)
"When called interactively with no active region, copy a single line instead."
(interactive
(if mark-active
(list (region-beginning) (region-end))
(message "Copied line")
(list (line-beginning-position) (line-beginning-position 2)))))
Với những vị trí này, bạn có thể giết hoặc sao chép điểm dòng được bật bằng một lần nhấn phím :
- C-w giết chết dòng hiện tại
- M-w sao chép dòng hiện tại
Lưu ý rằng nếu có một khu vực hoạt động kill-region
và kill-ring-save
sẽ tiếp tục làm những gì họ thường làm: Giết hoặc sao chép nó.
Chuyển slick-cut
và slick-copy
hệ thống tư vấn mới
Emacs 24.4 giới thiệu một hệ thống tư vấn mới . Mặc dù defadvice
vẫn hoạt động , có khả năng nó có thể bị từ chối ủng hộ hệ thống mới trong các phiên bản tương lai của Emacs. Để chuẩn bị cho điều đó, bạn có thể muốn sử dụng các phiên bản cập nhật của slick-cut
và slick-copy
:
(defun slick-cut (beg end)
(interactive
(if mark-active
(list (region-beginning) (region-end))
(list (line-beginning-position) (line-beginning-position 2)))))
(advice-add 'kill-region :before #'slick-cut)
(defun slick-copy (beg end)
(interactive
(if mark-active
(list (region-beginning) (region-end))
(message "Copied line")
(list (line-beginning-position) (line-beginning-position 2)))))
(advice-add 'kill-ring-save :before #'slick-copy)
kill-whole-line
. :)