C-c %
应该是用于评论内容的emacs auctex模式快捷方式。 (还有C-c ;
注释了标记区域,但是有效)。现在有时它会注释掉一行,有时会注释掉一行以及它上面的一行。它似乎没有非常一致的行为。
我真正想要做的是注释光标所在的行,除非它在开始或结束标记上,在这种情况下注释掉整个环境。 (实际上,我只是理解了评论宏的略微奇怪的行为......)
答案 0 :(得分:3)
C-c %
运行TeX-comment-or-uncomment-paragraph
。有关段落的确切内容,请参阅manual:
命令: TeX-comment-or-uncomment-paragraph
(C-c %
)从当前段落中每行的开头添加或删除%
。删除%
个字符时,段落被视为包含以%
开头的所有前后行,直到第一个非注释行。
这是一个评论功能,或多或少地做你想要的。取消评论环境仅在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))))))