Elisp: Print, Output
Print to Messages Buffer
message-
(message FORMAT_STRING &rest ARGS)Print a Format String to the Messages Buffer .
(message "Name is: %s" "Joe")
Insert Text to Current Buffer
insert-
(insert &rest ARGS)Insert string to current buffer, at cursor position.
(insert "something")
Print to a Buffer
Print Text as Emacs Lisp String, with Newline
print-
(print OBJECT &optional TARGET)- Print lisp object in lisp syntax.
- Print a newline at end.
- Optional arg for a target buffer, or other functions.
Add
formatif you need to print multiple items in one shot. 〔see Elisp: Format String〕When writing a elisp script that does batch processing, it's best to print to your own buffer, because the Messages Buffer scrolls off.
(setq xbuff (generate-new-buffer "*my output*")) (print "something" xbuff) (switch-to-buffer xbuff ) 〔see Buffer Functions〕
Print Text as Emacs Lisp String, no Newline
prin1-
(prin1 OBJECT &optional TARGET)Like
print, but does not add newline at end.
Print Text as Human Readable (No Newline)
princ-
(princ OBJECT &optional TARGET)- Print in more human-readable format. (e.g. no string delimiters.)
- No newline at end.
Print to Warnings Buffer
warn-
(warn FORMAT_STRING &rest ARGS)Print a warning of Format String to a buffer named
*Warnings*.(warn "You got a problem. Incorrect input.")
Temporarily Specify a Buffer for Output
with-output-to-temp-buffer-
(with-output-to-temp-buffer BUFNAME &rest BODY)Bind standard-output to buffer BUFNAME, eval BODY, then show that buffer.
- buffer is cleared before printing to it.
- print functions default to print to the buffer.
(let ((xbuff (generate-new-buffer "*my output*"))) (with-output-to-temp-buffer xbuff ;; this is printed to xbuff (print "abc") ;; ))