C-c %
应该是注释掉东西的emacs auctex模式快捷方式。(还有C-c ;
哪些注释掉了标记的区域,但是那个有效)。现在有时它会注释掉一行,有时它会注释掉一行和它上面的那些。它似乎没有非常一致的行为。
我真正想做的是注释掉光标所在的行,除非它位于开始或结束标记上,在这种情况下注释掉整个环境。(实际上,我会满足于理解评论宏的稍微奇怪的行为......)
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))))))