2

C-c %应该是注释掉东西的emacs auctex模式快捷方式。(还有C-c ;哪些注释掉了标记的区域,但是那个有效)。现在有时它会注释掉一行,有时它会注释掉一行和它上面的那些。它似乎没有非常一致的行为。

我真正想做的是注释掉光标所在的行,除非它位于开始或结束标记上,在这种情况下注释掉整个环境。(实际上,我会满足于理解评论宏的稍微奇怪的行为......)

4

1 回答 1

3

C-c %运行TeX-comment-or-uncomment-paragraph。对于这里的段落到底是什么,请参阅手册

命令:TeX-comment-or-uncomment-paragraph
( C-c %) 在当前段落的每一行的开头添加或删除%。删除%字符时,该段落被认为由所有以 a 开头的前后行组成%,直到第一个非注释行。


这是一个评论功能,或多或少可以满足您的需求。取消注释环境仅在LaTeX-syntactic-comments是时才有效t(即使那样也不总是很好)。

(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))))))
于 2010-11-24T23:16:24.010 回答