2010-11-24 13 views
2

C-c %は、コメントアウトのためのemacs auctexモードのショートカットになっているはずです。 (C-c ;は、マークされた領域をコメントしますが、その1つはです))。時にはそれは一行をコメントすることもありますが、時にはその行とその上の行をコメントアウトすることもあります。非常に一貫した動作をしているようには見えません。emacs:auctexでC-c%は何をしていますか、どうすればより良く動作させることができますか?

私が本当にしたいのは、開始タグまたは終了タグにない限り、カーソルがある行をコメントアウトすることです。この場合、環境全体をコメントアウトします。 (実際には、コメントマクロのやや奇妙な振る舞いを理解するだけで解決します...)

+4

これはプログラミングに関するものではなく、emacsに関するものです。なぜ移行されたのですか? – Seamus

答えて

3

C-c %実行TeX-comment-or-uncomment-paragraph。ここでは、段落と考えられている正確に何のために、manualを参照してください。

コマンド:のTeX-コメント・オア・コメントを解除段落
C-c %)を追加したり、現在の各行の先頭から%を削除段落。 %文字を削除すると、段落は、最初の非コメント行まで、%で始まるすべての前後の行からなるとみなされます。


はここで、多かれ少なかれ何をしたいんコメント機能です。環境のコメント解除は、LaTeX-syntactic-commentstの場合にのみ機能します。

(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は実際には「環境マーク」コマンドを定義しています: 'C-c .' – Seamus

関連する問題