2010-11-24 13 views
2

C-c % est censé être le raccourci en mode emacs auctex pour commenter les choses. (Il y a aussi C-c ; qui commente la région marquée, mais celle fonctionne). Maintenant, parfois, il commente une seule ligne, parfois il commente une ligne et celles au-dessus. Il ne semble pas avoir un comportement très cohérent. Ce que je voudrais vraiment faire, c'est commenter la ligne sur laquelle se trouve le curseur sauf s'il s'agit d'une balise de début ou de fin, auquel cas commenter l'environnement entier. (En fait, je me contenterais de comprendre le comportement un peu bizarre de la macro de commentaire ...)emacs: que fait C-c% dans auctex et comment puis-je le faire mieux?

+4

Il s'agit d'emacs, pas de programmation. Pourquoi a-t-il été migré? – Seamus

Répondre

3

C-c % exécute TeX-comment-or-uncomment-paragraph. Pour ce qui est considéré exactement un paragraphe ici, voir le manual:

Commande: TeX-commentaire-ou-uncomment-paragraphe
(C-c %) Ajouter ou supprimer % depuis le début de chaque ligne dans le courant paragraphe. Lors de la suppression des caractères %, le paragraphe est considéré comme composé de toutes les lignes précédentes et suivantes commençant par %, jusqu'à la première ligne sans commentaire.


est ici fonction des commentaires qui fait plus ou moins ce que vous voulez. Décommenter un environnement ne fonctionne que si LaTeX-syntactic-comments est t (et pas toujours très bien même alors).

(defun LaTeX-comment-environment-or-line (arg) 
    "Comment or uncomment the current line. 
If the current line is the \\begin or \\end line of an environment, comment 
or uncomment the whole environment." 
    (interactive "*P") 
    (save-match-data 
    (save-excursion 
     (beginning-of-line) 
     (cond 
     ((looking-at (concat "\\s-*\\(" TeX-comment-start-regexp "\\)?\\s-*" 
          (regexp-quote TeX-esc) "begin")) 
     (let ((begin (point))) 
      (goto-char (match-end 0)) 
      (LaTeX-find-matching-end) 
      (TeX-comment-or-uncomment-region begin (point) arg))) 
     ((looking-at (concat "\\s-*\\(" TeX-comment-start-regexp "\\)?\\s-*" 
          (regexp-quote TeX-esc) "end")) 
     (let ((end (save-excursion (end-of-line) (point)))) 
      (LaTeX-find-matching-begin) 
      (beginning-of-line) 
      (TeX-comment-or-uncomment-region (point) end arg))) 
     (t 
     (TeX-comment-or-uncomment-region 
     (point) (save-excursion (end-of-line) (point)) arg)))))) 
+1

AucTeX définit en fait une commande "mark environment": 'C-c .' – Seamus