Tôi không nghĩ rằng có một cơ chế tích hợp sẵn cho việc này, vì vậy bạn có thể cần phải tự lăn.
Không có câu trả lời trực tiếp, nhưng tôi có một cái gì đó tương tự trong cấu hình của mình: Tôi không muốn được nhắc xác nhận khi giết một tệp khớp với những gì trên đĩa. Để kiểm tra điều này, tôi đang chạy diff và sau đó quét đầu ra - bạn có thể làm điều gì đó tương tự cho trường hợp sử dụng của mình.
(defun my/matches-file-p ()
"Return t if the current buffer is identical to its associated file."
(autoload 'diff-no-select "diff")
(when buffer-file-name
(diff-no-select buffer-file-name (current-buffer) nil 'noasync)
(with-current-buffer "*Diff*"
(search-forward-regexp "^Diff finished \(no differences\)\." (point-max) 'noerror))))
(defun my/kill-buffer ()
"Kill the current buffer.
Don't prompt for confirmation if the buffer is unmodified or matches its file."
(interactive)
(when (my/matches-file-p)
(set-buffer-modified-p nil))
(kill-buffer))
Nhìn thêm vào trường hợp tự động hoàn nguyên. Có vẻ như lời nhắc đó đến từ after-find-file
, đang xem dấu thời gian ( file-newer-than-file-p
). Tôi không thấy một cách đơn giản để tùy chỉnh hoặc tư vấn cho hành vi này. Có lẽ bạn có thể khuyên nên after-find-file
so sánh tệp với tệp tự động lưu của nó và đặt warn
đối số thành không nếu mọi thứ khớp.