Emacs Lisp, похоже, не имеет функции PPRINT. Как вы печатаете S-EXP в elisp, как вы можете в Common Lisp?
PPRINT в Emacs Lisp?
Ответ 1
Используйте библиотеку pp
, которая является частью GNU Emacs. Например, вы можете использовать pp-macroexpand-last-sexp
для пресечения sexp.
Ответ 2
Предполагая, что результат cl-prettyprint
достаточно хорош для вас, вот как получить его вывод в потоке.
(defun pprint (form &optional output-stream)
(princ (with-temp-buffer
(cl-prettyprint form)
(buffer-string))
output-stream))