2010-08-23 21 views
18

Emacs Lisp no parece tener una función de PINTURA. ¿Cómo se imprime bastante un S-EXP en elisp de la forma que se puede en Common Lisp?PINTURA en Emacs Lisp?

+0

Veo que cl-prettyprint se imprimirá en el búfer actual. Estoy buscando algo que funcione con una secuencia de salida como PPRINT de Common Lisp. – anthonyf

Respuesta

8

Suponiendo que el resultado de cl-prettyprint es lo suficientemente bueno para usted, aquí le mostramos cómo obtener su salida en una transmisión.

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

utilizar la biblioteca pp que es parte de GNU Emacs. Por ejemplo, puede usar pp-macroexpand-last-sexp para embellecer un sexp.

+0

La manera más fácil es simplemente usar '(objeto pp)' –

+2

Mi ... esa biblioteca parece familiar. Oh sí, lo escribí. :) –

+0

Gran trabajo, Randal, me salvaste el día. – Seraph