请教values变量的问题

values is a variable defined in `lread.c'.
Its value is nil

Documentation:
List of values of all expressions which were read, evaluated and printed.
		       Order is reverse chronological.

上面是values变量的帮助文档,但是我实际检查这个变量值好像一直都是nil,无论曾经eval过什么。请大家帮忙看看是不是这么回事。我用的是24.5.1,谢谢!

据观察,带PRINTFLAG的,比如eval-buffer、eval-region,加上PRINTFLAG后,才会modify values。 另外就是eval-expression,也会push返回值到values里。 更深入的就不知道了…

参阅Manual

https://www.gnu.org/software/emacs/manual/html_node/elisp/Eval.html#Eval

注意通过ielm,eval-last-sexp进行eval的结果是不会记录的

;; Run following code using `M-x eval-expression'
(+ 1 2)
;; => 3
values
;; => (3 nil)

哦,明白了,感谢大家的解答。