mayer@hplabsc.UUCP (07/08/87)
Is there a way to get the results of gnuemacs' lisp evaluations (and messages) to go to an output buffer rather than the message/minibuffer line?? This would be especially useful when a whole slew of errors occur from the evaluation of some lisp funtion and all the errors end up overwriting each other in the message line. Ultimately, it would be nifty-neat to be able to toggle between output going to the message/minibuffer line and a designated output buffer (perhaps "Lisp Output"). -- Niels.
mayer%hplnpm@HPLABS.HP.COM (Niels P. Mayer) (07/09/87)
> The lisp-interaction-mode of Emacs (which is what the *scratch* buffer is in > by default) provides a nice REPL (read-eval-print loop) for Emacs lisp, in which > you can type Emacs lisp expressions and have them evaluated interactively. > The results are printed in that buffer itself. Indeed C-J will put eval results into a lisp-interaction-mode buffer. However, when one is in an emacs-lisp-mode buffer, one may also want to keep a record of one's evaluation results. If I'm editing an emacs-lisp file, I wouldn't want evaluation results getting spuriously plugged into my code (as would happen if the buffer was in lisp-interaction-mode). It would be consistent with gnuemacs' other language modes if the results of a C-M-X evaluation in an emacs-lisp-mode buffer would go to the *scratch* buffer. Anybody know how get that sort of behaviour in gnuemacs? -- Niels Mayer Hewlett-Packard Laboratories. (mayer@hplabs.hp.com)
pem@cadnetix.UUCP (Paul Meyer) (07/09/87)
[]
I have succesfully used (with-output-to-temp-buffer) to send output
to a buffer. You also need to make your output come out to the lisp stdout
to do this, using prin1/princ/whatever. You can also create a buffer and
pop up a window on it, then use (insert (prin1 (your-func))) or some such.
Here are some examples that should work. (Disclaimer--I don't have
the time (company time) to test these):
(defun bletch (buffername)
"Write a string to BUFFER."
(with-output-to-temp-buffer buffername (prin1 (+ 3 4))))
(defun squat (buffername)
"Pop up a buffer named BUFFER, and write to its end."
(pop-to-buffer buffername)
(save-excursion
(goto-char (point-max))
(insert (prin1-to-string (+ 3 4)))))
Something I have found invaluable in lieu of a real elisp manual is
to do M-x apropos "." then save the help buffer. In my case,
I dumped it to the laser printer. I also did a command-apropos of "."
and saved that one, then did a bunch of manipulation to get two files,
one just the interactive commands (the straight command-apropos output)
and one just the noninteractive ones (the apropos output not in the command-
apropos output). If I remember correctly, I used emacs or sed to put the
one-line descriptions (when they existed) on the end of the name lines,
merged the files using sort, used uniq to discard all repetitions of re-
peated lines, then undid the joining. When I see an interesting function
for something I'm trying to do, I do help F to get the full description.
Because I am working without an elisp manual, I have learned most
things by trial and error and looking at the standard code, so I may be
missing a much easier way to do this.
pem@cadnetix.uucpmike@yetti.UUCP (Mike Clarkson ) (07/10/87)
In article <2190@hplabsc.UUCP> mayer@hplabsc.UUCP (Niels Mayer) writes: >Is there a way to get the results of gnuemacs' lisp evaluations (and >messages) to go to an output buffer rather than the message/minibuffer >line?? Do describe-function lisp-interaction-mode It's usually the default mode in the *scratch* buffer. <LFD> evaluates the previous s-expression, with the results displayed in the buffer. -- Mike Clarkson, ...!allegra \ BITNET: mike@YUYETTI or CRESS, York University, ...!decvax \ SYMALG@YUSOL 4700 Keele Street, ...!ihnp4 > !utzoo!yetti!mike North York, Ontario, ...!linus / CANADA M3J 1P3. ...!watmath / Phone: +1 (416) 736-2100 x 7767 "...the most inevitable business communications system on the planet." - ROLM magazine advertisement which planet?