Câu trả lời của @ Malabarba giống như giải pháp đơn giản và thanh lịch nhất. Tuy nhiên, nếu bạn làm điều này đủ để nó đảm bảo chức năng của chính nó, bạn cũng có thể điều chỉnh comment-kill
để xóa mà không cần sửa đổi vòng kill. Đây là mã nguồn của
comment-kill
thay đổi một dòng để xác định comment-delete
:
(defun comment-delete (arg)
"Delete the first comment on this line, if any. Don't touch
the kill ring. With prefix ARG, delete comments on that many
lines starting with this one."
(interactive "P")
(comment-normalize-vars)
(dotimes (_i (prefix-numeric-value arg))
(save-excursion
(beginning-of-line)
(let ((cs (comment-search-forward (line-end-position) t)))
(when cs
(goto-char cs)
(skip-syntax-backward " ")
(setq cs (point))
(comment-forward)
;; (kill-region cs (if (bolp) (1- (point)) (point))) ; original
(delete-region cs (if (bolp) (1- (point)) (point))) ; replace kill-region with delete-region
(indent-according-to-mode))))
(if arg (forward-line 1))))
Và đây là một chức năng (NB: được kiểm tra tối thiểu) cung cấp một số chức năng bổ sung, cho phép bạn xóa nhận xét trên dòng hiện tại, trong vùng hoạt động hoặc trong toàn bộ bộ đệm:
(defun comment-delete-dwim (beg end arg)
"Delete comments without touching the kill ring. With active
region, delete comments in region. With prefix, delete comments
in whole buffer. With neither, delete comments on current line."
(interactive "r\nP")
(let ((lines (cond (arg
(count-lines (point-min) (point-max)))
((region-active-p)
(count-lines beg end)))))
(save-excursion
(when lines
(goto-char (if arg (point-min) beg)))
(comment-delete (or lines 1)))))
Tôi đã không kiểm tra các vấn đề về hiệu suất, nhưng có lẽ có một vết sưng nhỏ khi không chạm vào vòng giết. Bất kể, tôi nghi ngờ bạn sẽ nhận thấy các vấn đề về hiệu suất trừ khi bạn làm việc với một bộ đệm thực sự lớn. Nhưng vì bạn không thể sử dụng chức năng này rất thường xuyên, nên có vẻ như nó không đáng để nỗ lực tối ưu hóa.
M-x flush-lines ^\s-*\/\/
hoặc một cái gì đó để có hiệu lực. Không hoàn hảo, nhưng có thể làm việc một số lần.