代码之家  ›  专栏  ›  技术社区  ›  Seamus

Emacs:C-C%在auctex做什么?我怎样才能让它表现得更好?

  •  2
  • Seamus  · 技术社区  · 15 年前

    C-c % 应该是emacs auctex模式的快捷方式来评论东西。(还有 C-c ; 哪个注释出了标记的区域,但是那个区域 作品 )现在它有时只评论一行,有时只评论一行和上面的一行。它的行为似乎不太一致。

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

    1 回复  |  直到 15 年前
        1
  •  3
  •   Gilles 'SO- stop being evil'    15 年前

    C-c % TeX-comment-or-uncomment-paragraph . 关于此处的段落,请参见 manual :

    命令: tex注释或取消注释段落
    ( 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))))))