Как прокомментировать sexps в коде elisp?

Каков предпочтительный способ прокомментировать sexps в коде elisp? Я до сих пор обволакивал свои sexps в (if nil ...).

Ответы

Ответ 1

[email protected] M-; комментарии текущего sexp.

[email protected] остается для mark-sexp и M-; знает, как правильно прокомментировать регион, учитывая текущий режим. Команды для отметки объектов описаны здесь.

Ответ 2

Конструкция (if nil sexp) будет работать нормально. Я не знаю, есть ли стандартный эквивалент в Emacs Lisp, хотя я подозреваю, что нет. Если вы хотите более подробно узнать, что вы делаете, вы можете использовать что-то вроде макроса комментария в clojure. Это легко реализовать как макрос Emacs Lisp.

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

Тогда вы могли бы просто написать:

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

EDIT:

Добавлен nil в конец определения макроса comment. Как указано Марко Топольник, если вы не предоставляете тело реализации, defmacro предполагает, что docstring на самом деле является телом. Явное размещение объекта nil в конце работает вокруг этого. Спасибо за уловку Марко!

Ответ 3

точки с запятой -;;;

;;; 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)))