Tôi không chắc liệu việc sử dụng apply
có được đề xuất ở đây hay không. Có một giải pháp tốt hơn/tiêu chuẩn để thiết lập chế độ chính động? Tôi không thể tìm thấy bất kỳ khác.Sử dụng đúng cách áp dụng trong Emacs Lisp?
Bối cảnh:
Bất cứ khi nào tôi nhận được thông
X has auto save data; consider M-x recover-this-file
trong Emacs, tôi tự hỏi những gì là sự khác biệt giữa các tập tin hiện tại và phiên bản tự động lưu lại được. Vì hầu hết thời gian tôi không thể bị làm phiền để tìm nó lên, tôi đã cố gắng để tự động hóa các nhiệm vụ:
(defun ediff-auto-save()
"Ediff current file and its auto-save pendant."
(interactive)
(let ((auto-file-name (make-auto-save-file-name))
(file-major-mode major-mode))
(ediff-files buffer-file-name auto-file-name)
(switch-to-buffer-other-window (file-name-nondirectory auto-file-name))
(apply file-major-mode '())
(other-window 1))) ;; back to ediff panel
Mã này làm những gì tôi muốn, nó sẽ mở ra các tập tin tự động lưu lại và bắt đầu ediff. Tôi cũng đặt chế độ chính của tệp tự động lưu thành chế độ chính của tệp gốc cho khóa phông chữ nhất quán.
Đây là một phần rất tiện dụng, bất kể 'áp dụng' là lựa chọn đúng đắn. – Anne