在emacs-lisp 当中,想要下面这种样子:
(my-func args
(if t
nil
t)
)
如上面的例子,我只想把 my-func
这层的缩进去掉,内部其他表达式缩进都保持原来的姿势。
该怎么搞?
在emacs-lisp 当中,想要下面这种样子:
(my-func args
(if t
nil
t)
)
如上面的例子,我只想把 my-func
这层的缩进去掉,内部其他表达式缩进都保持原来的姿势。
该怎么搞?
每种语言的 major mode 都有自己的缩进方式。你这个是什么语言?什么 major mode?
只要 emacs-lisp 就行。
可以用 agressive-indent。其实默认的缩进就是正确的,不知道为什么你这个不对。
不,我可能没讲清楚。我想让最外层函数的缩进没有。函数内部其他的子表达式保持原有正确的缩进。
这是什么奇葩想法。
你可以“重载” lisp-indent-function
函数来实现。
(defun your-func (&rest _)
(declare (indent (lambda (&rest _) 0))))
(your-func
(if cond
t
nil)
(progn
1
2
3))
达成。实在是看不懂官方的(declare (indent indent-spec))
关于传函数的解释。不过总算达成想要的效果了。谢谢。
这个有点怪啊,为什么要这样
我的配置中,有个函数 宏,里面放了超过几千行的程序,这个时候,函数名不是太重要,而内部的内容才重要。缩进直接忽略母宏,方便阅读维护代码。
几千行的宏,不考虑将其split吗?
用 outline-mode
查看,跟straight学的。