当处于*scratch*
时,C-j调用eval-print-last-sexp
。
但是,当我这样做时,我无法获得默认行为:
(local-set-key
(kbd "C-j")
(lambda()(interactive) (eval-print-last-sexp)))
现在当评估结果为整数时,其八进制和十六进制 也打印了表示:
(+ 2 2)
4 (#o4, #x4)
造成此行为的原因是什么?如何将其关闭?
最佳答案
额外的输出来自函数eval-expression-print-format
(参见)。
在 lisp-interaction-mode
中,变量 this-command
设置为 eval-expression-print-format
。您只需类似地设置它即可:
(local-set-key
(kbd "C-j")
(lambda()(interactive)
(setq this-command 'eval-last-sexp)
(eval-print-last-sexp)))
关于Emacs eval-print-last-sexp 详细级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20857462/