progn
浏览经验丰富的Emacs用户的配置文件时,已经看到了很多使用情况。我找到了这个很好的解释progn
,但是我真正好奇的是,使用此功能的好处是什么?以以下片段为例(摘自Sacha Chua的配置):
(use-package undo-tree
:defer t
:ensure t
:diminish undo-tree-mode
:config
(progn
(global-undo-tree-mode)
(setq undo-tree-visualizer-timestamps t)
(setq undo-tree-visualizer-diff t)))
上面的配置与此之间有什么主要区别吗?
(use-package undo-tree
:defer t
:ensure t
:diminish undo-tree-mode
:config
(global-undo-tree-mode)
(setq undo-tree-visualizer-timestamps t)
(setq undo-tree-visualizer-diff t))
我觉得第一个示例在某种程度上来说更干净,尽管它具有更多的语法,并且我的直觉是使用可能会带来某种性能提升progn
,但是我不确定。感谢您的任何见解!
progn
需要一个示例:emacs.stackexchange.com/questions/39172/…–
use-package
包裹一个progn
。尝试一下:您可以将指针放在a的末尾(use-package ...)
并调用M-x pp-macroexpand-last-sexp
以查看宏的扩展方式。您将看到这两个示例是相同的。