标题注释该用几个分号?

写配置文件的时候免不了要有标题……类似下面:

;;; CSS

code

;;; SASS

code

那么标题用几个分号比较好一点?各位怎么看?

总之我又双叒叕来问这种无聊问题了。

没关系,都能理解,玩 emacs 的要是没有点强迫症都不敢说自己是 emacser。

对于问题本身,我没有这方面强迫症(但是有其它方面的),所以没有太关注。

;;; 标题
(defun foo ()
  "docstring"
  ;; 整行注释
  (+ 1 2); 行尾注释
)

不是用几个分号比较好的问题,这是 Lisp 代码规范。

但是有特别多的代码也没按这规范来,好多都这样:

;;; xxx.el --- xxx
;; ...(一堆规范里要求的信息)
;;; Code:

;; 标题1:
(defun foo()
  ....)

;; 标题2
(defun bar()
  ....)

我问的就是……按照规范的写法,标题1和标题2应该用几个分号。

不过话说回来,配置里我真的很少用标题了……一般都是两个分号的解释性注释……

标题是三个。 但是写在 defun 上面的可以是解释,不一定就是标题。这时候用两个。

比如

;; Exported Interface
(defun doo () ...)

;;; Init
(blabla ...)

(setq bar ...)
...

也就是说不管前面有没有那一堆格式化的信息,标题都应该是三个分号?

解释自然是两个分号,这没啥好纠结的……

是的,当然多个分号组成的分界线也是可以的。当然可能那些所谓不遵守规范的作者其实是把你认为的标题当作解释。

然而我问过那些作者……他们确实用俩分号

标题(或者叫 Section Heading)一般用 3 个或 3 个以上的分号,这在 (elisp) Comment Tips 中有介绍。

‘;;;’

 Comments that start with three semicolons, ‘;;;’, should start at
 the left margin.  We use them for comments which should be
 considered a heading by Outline minor mode.  By default, comments
 starting with at least three semicolons (followed by a single space
 and a non-whitespace character) are considered headings, comments
 starting with two or fewer are not.  Historically, triple-semicolon
 comments have also been used for commenting out lines within a
 function, but this use is discouraged.

没有问题,本来这就是建议而已,不遵循也没问题。就我个人遵循这个建议的原因主要是方便搜索、快速跳转(M-x occurM-x imenu)而已,如果没有这些实际的用处,我可能也不会管它。

另外,感觉单单一个函数的注释不太能构成一个 标题/Heading,因为标题一般比较抽象,能概括很多代码。

;;; init.el --- Chunyang Xu's Emacs Configuration  -*- lexical-binding: t; -*-

;; Copyright (C) 2015-2017  Chunyang Xu

;;; Code:

;;; Debug init file

;; This is a tricky function
(defun chunyang-quit-init-el ()
  "Call it from init file to quit loading immediately."
  ...)

;;; Start up

...

;;; macOS

...

;;; GNU/Linux

...

;;; init.el ends here
1 个赞

所以我目前准备舍弃一些标题以遵循规范了……

我发现,因为use-package的关系,标题似乎不那么重要了。而且以我的强迫症,最好的方法其实是一个文件只包含一类的设置……

1 个赞