哈,我就经常做些违反 elisp 惯例的事情,例如:
(let ((...))
(when (...)
(body)
))
主要考虑的是:
-
避免编辑出错,毕竟整行复制/粘贴/删除是最方便的,其它语言的一些风格指南鼓励 trailing comma 也是这个原因:
// bad [ 1, 2 ] // good [ 1, 2, ]
-
突出 body
-
强调结束,避免与后续代码纠缠。至今不太习惯 elisp 的缩进,代码稍微复杂一点,缩进就不太直观了。如果写成
body))))
,而且这一行比较长的话,就难免要怀疑下一行跟 body 是不是在同一个 if/when 下了
简单来说还是照顾视觉,我个人看代码首先是块,然后才是行。所以把逻辑块排版清楚,会更容易理解。