请问(declare (indent defun))
中indent defun
含义是什么?
这是文档描述链接Indenting Macros (GNU Emacs Lisp Reference Manual)
像 defun
一样缩进,前两个参数缩进 4, 之后的参数全部缩进 2
(defun
foo
()
bar
baz)
2 个赞
谢谢回复。定义宏的时候引入indent defun的意义是什么呢?把这一行删除有什么影响呢?
对代码运行没任何影响,方便编辑罢了
1 个赞
谢谢回答。这个是怎样体现方便编辑的呢?是方便编辑宏,还是方便编辑宏生成的函数?
编辑宏
1 个赞
由 (declare (indent 4))
改为 (declare (indent 8))
对定义的宏中的代码缩进好像没影响,请问这是怎样体现方便编辑宏的呢
有效果,需要重新 eval 那个宏的定义然后重新缩进那些代码,比如
(defmacro progn-indent4 (&rest body)
(declare (indent 4))
`(progn ,@body))
(progn-indent4
1
2
3
4
5
6
7
8
9)
把 indent
改成 8 并且用 M-x eval-defun
重新 eval 宏之后,再 indent 上面的代码
(progn-indent4
1
2
3
4
5
6
7
8
9)
3 个赞
这个展示挺直观的,谢谢解答
mark 一下,原来如此。好奇怎么弄明白的?官方资料都不解释的.
多改一下 indent
然后自己试验,就好了