14

我试过了

(set (make-local-variable 'comment-auto-fill-only-comments) t)

并且

(auto-fill-mode 0)

尽管令人惊讶的是,在 emacs 重新启动后,这些都不起作用。

我正在使用eschulte 的 emacs 入门套件

在 Mx 自动填充模式下切换它可以正常工作。


更新

使用以下组合(感谢 Rémi):

(auto-fill-mode 1)
(setq comment-auto-fill-only-comments t) 

它在有注释的编程文件中完美运行。但是,在文本模式下,它会自动填充各处。

在文本文档中如何完全关闭自动填充模式?

4

1 回答 1

13

如果您希望 Emacs 自动填充注释,则不能将 comment-auto-fill-only-comments 设为局部变量:

(setq comment-auto-fill-only-comments t)

如果您只想在某种模式下使用它而不是全部,则必须将其添加到正确的钩子中:

(add-hook 'ruby-mode-hook 
          (lambda () ((set (make-local-variable 'comment-auto-fill-only-comments) t)))

更新答案

要从文本模式中删除自动填充,您必须使用钩子:

(add-hook 'text-mode-hook 
          (lambda () (auto-fill-mode -1)))

请注意,这也会改变从文本模式派生的模式中的自动填充状态(乳胶模式是一个例子,还有很多其他这样的模式)

于 2010-12-18T11:59:25.667 回答