【问题标题】:comment mode in emacsemacs 中的注释模式
【发布时间】:2012-08-11 18:09:22
【问题描述】:

我通常使用没有任何类型的块/多行注释的语言进行编程(例如 python [#] 和 fortran [c!]。)。有没有办法在 emacs 中定义一个允许我输入多行 cmets 的次要模式?我的意思是,它会导致 emacs 在 X 行(比如 72 行)之后自动换行,并自动在每行的开头添加一个注释字符(取自当前主要模式)?

对不起,如果这是一个非常基本的问题 - 我的 elisp 技能充其量只是初级。

【问题讨论】:

    标签: emacs comments elisp multiline


    【解决方案1】:

    M-x ;

    cmets/unmets 区域

    【讨论】:

    • 这没有回答问题。文本没有被换行。
    • 是的,我非常了解M-x comment-region。我更多地考虑进入一个允许 cmets 本地包装的次要模式。 (当像这样输入 cmets 时,由于 emacs 试图帮助语法高亮等,事情会变得很奇怪)。
    【解决方案2】:

    您可以使用以下代码:

    (setq fill-column 72)
    (setq comment-auto-fill-only-comments t)
    (auto-fill-mode t)
    

    这将自动换行文本,仅用于 cmets,并在每次换行时插入注释字符。

    我仅针对以下编程模式进行了设置:

    (defun my-prog-mode-hook
      (setq fill-column 72)
      (set (make-local-variable 'comment-auto-fill-only-comments) t)
      (auto-fill-mode t))
    (add-hook 'prog-mode-hook 'my-prog-mode-hook)
    

    这可以确保如果我在 AUCTeX 等非编程模式下打开自动填充模式,所有文本都会被换行,而不仅仅是 cmets。

    【讨论】:

    • 嗯...我将上面的代码复制到.emacs 中,它似乎没有为我做包装。 (如果有区别的话,我会在 OS-X 上使用 Aquamacs)。
    • 这段代码在 emacs 24 中没有加载,但是这三行 (emacs -q) 可以工作。我不知道 Aquamacs 是做什么的。
    • 谢谢。有时间我会在我的 linux 机器上尝试一下,看看它是否在那里工作。
    • 无需切换自动填充。它也应该适用于 M-q ( fill-paragraph )
    猜你喜欢
    • 1970-01-01
    • 2014-05-24
    • 2017-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-01
    相关资源
    最近更新 更多