2010-11-17 3 views

Antwort

19

[email protected] M-; Kommentare aktuelle sexp.

[email protected] bleibt für mark-sexp und M-; kann eine Region korrekt auskommentieren, wobei der aktuelle Modus berücksichtigt wird. Befehle zum Markieren von Objekten werden beschrieben here.

+1

'C-M- @' kann auch an 'C-M-SPC' gebunden sein, was einfacher zu schreiben und zu merken ist. – kristianlm

1

Semikolon - ;;;

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

Danke, aber Semikolons werden ganze Zeilen auskommentieren. Ich war auf der Suche nach einer Möglichkeit, einzelne Sexs zu kommentieren. – sigjuice

+3

Ich bezweifle eher, dass Sie einen Sexp kommentieren können, ohne den Kommentarmechanismus der Sprache zu verwenden. '(wenn nil sexp)' gibt einen Wert von Null zurück, während ein Kommentar ignoriert wird und keinen Wert hat. Als solcher würde ich etwas vorsichtig sein, den Begriff "Kommentar" zu verwenden, um dies zu beschreiben, denn das ist es nicht. – phils

+0

yeah, ich habe mich auf "comment" fixiert ... was von den Semikolon (en) auf EOL –

12

Ihr (if nil sexp) Konstrukt funktioniert einwandfrei. Ich weiß nicht, ob es in Emacs Lisp ein Standardäquivalent gibt, obwohl ich nicht vermute. Wenn Sie genauer erklären möchten, was Sie tun, können Sie etwas wie die comment macro in clojure verwenden. Was einfach als Emacs Lisp-Makro implementiert werden kann.

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

Dann könnte man einfach schreiben:

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

EDIT:

Added nil bis zum Ende der Definition des comment Makro. Wie in Marko Topolnik gezeigt, wird defmacro vorausgesetzt, dass der Docstring tatsächlich der Textkörper ist, wenn Sie keinen Implementierungskörper bereitstellen. Am Ende funktioniert das explizit mit einem nil. Danke für den Fang Marko!

+2

angewendet wird Das Makro ist schön, weil man mehrere Sexs haben kann, wobei das wenn nur für ein einziges sexp funktioniert. Eine offensichtliche Alternative wäre (wenn Null ....) –

+0

Vorbehalt: das Makro funktioniert nur für Top-Level-Formulare. Es erweitert sich zu dem, was der Autor offenbar als seine Doc-Zeichenkette haben wollte. –