Thanks a lot ! 2009/7/5 Stephen Berman > On Sun, 5 Jul 2009 12:25:00 +0800 waterloo wrote: > > > in 11.1.2 An Example: `print-elements-of-list' of `Instruction to > > emacs lisp' , why C-u make the output not in minubuffer. > > C-u is 4 by definition . > > I can not understant why in the context. > > can you explain more details or give some link ? > > I assume you are referring to this (in node > (eintr)print-elements-of-list of the Introduction to Programming in > Emacs Lisp): > > "Be sure to evaluate the last expression, `(print-elements-of-list > animals)', by typing `C-u C-x C-e', that is, by giving an argument to > `eval-last-sexp'. This will cause the result of the evaluation to be > printed in the `*scratch*' buffer instead of being printed in the echo > area." > > That is, C-u is not a prefix argument of `print-elements-of-list' but of > `eval-last-sexp', and its meaning is explained in the doc string of > `eval-last-sexp', which you can read by typing `C-h f eval-last-sexp': > > ,---- > | eval-last-sexp is an interactive compiled Lisp function in > `lisp-mode.el'. > | > | It is bound to C-x C-e. > | > | (eval-last-sexp eval-last-sexp-arg-internal) > | > | Evaluate sexp before point; print value in minibuffer. > | Interactively, with prefix argument, print output into current buffer. > | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > | Truncates long output according to the value of the variables > | `eval-expression-print-length' and `eval-expression-print-level'. > `---- > > You need to use `eval-last-sexp' (or another evaluation method) because > `print-elements-of-list' is not a command, i.e. an interactive function, > since it lacks `(interactive)' in its definition. So you cannot call it > by typing `M-x print-elements-of-list' but have to explicitly evaluate > it. > > Steve Berman >