2010-11-17 16 views

Répondre

19

[email protected] M-; commentaires sexp.

[email protected] reste pour mark-sexp et M-; sait comment commenter correctement une région, en tenant compte du mode courant. Les commandes de marquage d'objets sont décrites here.

+1

'C-M- @' peut également être lié à 'C-M-SPC', ce qui peut être plus facile à saisir et à mémoriser. – kristianlm

1

points-virgules - ;;;

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

Merci, mais les points-virgules commenteront des lignes entières. Je cherchais un moyen de commenter les sexps individuels. – sigjuice

+3

Je doute assez que vous pouvez commenter un sexp sans utiliser le mécanisme de commentaire de la langue. '(si nil sexp)' renvoie une valeur de zéro, alors qu'un commentaire est ignoré et n'a pas de valeur. En tant que tel, je serais un peu méfiant d'utiliser le terme «commentaire» pour décrire cela, parce que ce n'est pas ce que c'est. – phils

+0

ouais, je fixais sur "commentaire" .... qui sont appliquées à partir du point-virgule (s) à EOL –

12

Votre construction (if nil sexp) fonctionnera très bien. Je ne sais pas s'il y a un équivalent standard dans Emacs Lisp, bien que je ne le soupçonne pas. Si vous voulez être plus explicite sur ce que vous faites, vous pouvez utiliser quelque chose comme le comment macro in clojure. Ce qui est facilement implémenté comme une macro Emacs Lisp.

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

alors vous pouvez écrire:

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

EDIT:

Ajouté nil à la fin de la définition de la macro comment. Comme indiqué par Marko Topolnik, si vous ne fournissez pas un corps d'implémentation, defmacro suppose que la docstring est réellement le corps. Explicitement mettre un nil à la fin fonctionne autour de cela. Merci pour la capture Marko!

+2

La macro est belle parce que vous pouvez avoir plusieurs sexps, alors que le si ne fonctionne que pour un seul sexp. Une alternative évidente serait (quand nul ....) –

+0

Avertissement: la macro ne fonctionne que pour les formulaires de niveau supérieur. Il s'étend à ce que l'auteur a apparemment voulu être sa chaîne de doc. –