2010-08-23 126 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