Giả sử tôi có một chức năng giống như sau (thường là khi in đầu ra elisp).
(defun my-example-function () (let ((a (do-something)) (b (do-something))) (setq someone me) (with-current-buffer b (do-that (or this (and that those))) (format "%s" a))))
Tôi muốn một lệnh có thể biến nó thành thứ mà con người sẽ viết, chẳng hạn như sau.
(defun my-example-function ()
(let ((a (do-something))
(b (do-something)))
(setq someone me)
(with-current-buffer b
(do-that (or this (and that those)))
(format "%s" a))))
Tôi hiểu rằng có nhiều hơn một cách để định dạng một đoạn mã elisp và những con người khác nhau làm điều đó khác nhau. Hơn nữa, tôi hiểu nó hơi chủ quan. Nhưng nó khá dễ dàng để đưa ra một bộ quy tắc dẫn đến mã ít nhất là tốt.
Tôi thực sự đã nghĩ đến việc này một mình trước đây, nhưng tôi nghĩ rằng tốt hơn là nên hỏi trước khi tôi phát minh lại bánh xe.
Lưu ý, tôi biết về chức năng pp , nhưng nó không hoàn toàn đạt được điều đó:
(defun my-example-function nil
(let
((a
(do-something))
(b
(do-something)))
(setq someone me)
(with-current-buffer b
(do-that
(or this
(and that those)))
(format "%s" a))))
pp
.