如何在elisp代码中注释掉sexps?

时间:2010-11-17 02:18:31

标签: emacs elisp

在elisp代码中注释掉色情内容的首选方式是什么?到目前为止,我一直在(if nil ...)包裹我的性别。

3 个答案:

答案 0 :(得分:20)

C-M-@ M-;评论当前性别。

C-M-@停留在mark-sexpM-;知道如何正确评论某个地区,并考虑当前模式。标记对象的命令描述为here

答案 1 :(得分:12)

您的(if nil sexp)构造工作正常。我不知道Emacs Lisp中是否有标准的等价物,但我怀疑没有。如果您想更明确地了解自己在做什么,可以使用comment macro in clojure之类的内容。这很容易实现为Emacs Lisp宏。

(defmacro comment (&rest body)
  "Comment out one or more s-expressions."
  nil)

然后你可以写:

(comment 
  ...
  ; As many sexps as you want here...
  ...)

编辑:

nil宏的定义末尾添加了comment。正如Marko Topolnik所指出的,如果您不提供实现主体,defmacro假定文档字符串实际上是正文。明确地将nil放在最后可以解决这个问题。感谢赶上马可!

答案 2 :(得分:1)

分号 - ;;;

;;; insert into buffer
(defun thingy (foo)
  (interactive "stallman: ") ; prompt the user
  ; one semi-colon is also enough
  ;;;(insert (concat "deprecated")) ;;; this line will not execute
  (insert (concat "gnu-" foo)))