关于emacs的lisp:如何评论多行表达式?

时间:2011-02-06 17:20:58

标签: emacs lisp comments

例如,如果我想对此发表评论:

(defun noop ()
  nil)

每当我尝试在“defun”之前放一个分号时,defun就会跑到下一行。那该怎么办?

GNU Emacs 23.1.1

编辑:通过“逃跑”我的意思是当我在“(defun”之前插入分号,在分号后自动插入换行符并且“(defun”再次在新行上开始。

7 个答案:

答案 0 :(得分:13)

M-x评论区域及相关。

答案 1 :(得分:5)

标记两行并致电M-x comment-region。另请参阅comment-or-uncomment-regioncomment-dwim函数。

答案 2 :(得分:5)

M-X comment-dwimM-;,这是前者的默认键绑定 - 可能会为您节省一些关键笔划,因为它不仅可以评论,还可以取消注释区域,如果已经注释的话。无论如何,请查看Emacs Manual以获取正确的说明。

答案 3 :(得分:5)

罗恩,做一个CTRL-H m并查看次要模式。您有一些“有用”的辅助模式处于活动状态。 (也许是paredit,但我不认为就是这样。)我记得当我尝试使用EMACS入门套件时有类似的东西。它在我尖叫之前持续了大约三十秒,并发现如何杀死它。

在任何情况下,这都不是默认的EMACS行为,而是添加一些init-file或site-emacs。

答案 4 :(得分:2)

如果你在谈论Common Lisp(而不是Emacs-Lisp),你可以使用#+(or)

#+(or)
(defun noop ()
  nil)

有关详细信息,请参阅CLHS

答案 5 :(得分:2)

对于标题中要求的特定任务(注释一次可能跨越多行的完整表达式),首先按C-M-SPC(绑定到mark-sexp)将区域设置为表达式关注点,然后M-;(绑定到comment-dwim将调用comment-region)。

答案 6 :(得分:2)

但是,派对有点晚了,怎么样:

(defmacro comment (&rest a))