2010-08-23 97 views
18

Emacs Lisp似乎没有PPRINT功能。您如何在Common Lisp中以elisp的方式打印S-EXP?Emacs Lisp中的PPRINT?

+0

我看到cl-prettyprint会打印到当前缓冲区。我正在寻找一些与Common Lisp的PPRINT一样的输出流。 – anthonyf 2010-08-23 22:17:24

回答

8

假设cl-prettyprint的结果对您来说足够好,下面介绍如何在一个流中获取其输出。

(defun pprint (form &optional output-stream) 
    (princ (with-temp-buffer 
      (cl-prettyprint form) 
      (buffer-string)) 
     output-stream)) 
21

使用属于GNU Emacs的pp库。例如,您可以使用pp-macroexpand-last-sexp来美化sexp。

+0

最简单的方法就是使用'(pp对象)' – 2016-03-13 18:11:06

+2

我的...图书馆看起来很熟悉。噢,我写了。 :) – 2017-01-24 04:28:05

+0

伟大的工作,兰德尔,你救了我的一天。 – Seraph 2018-02-07 19:34:43