在noweb模式下禁用自动填充模式

时间:2009-10-14 15:31:45

标签: emacs autofill

请为上帝之爱如何让Emacs停止自动填充?我使用visual-line-mode,我不想自动填充。我可以使用M-x auto-fill-mode RET将其关闭,但在Noweb模式下,当我进入代码块并再次退出时,它会重新打开。拜托,我只想全球转向自动填充模式,这让我发疯了。

我试过

(auto-fill-mode 0)

和一堆像

这样的疯狂事情
(add-hook 'Rnw-mode-hook '(lambda () (auto-fill-mode 0)))
(add-hook 'latex-mode-hook '(lambda () (auto-fill-mode 0)))

但似乎没有任何效果。请帮帮我。

3 个答案:

答案 0 :(得分:6)

您应该检查是否可以删除一些以禁用自动填充,而不是在系统中添加更多挂钩。

如果您看到noweb-mode's source code,则在第211行附近找到此块:

(add-hook 'noweb-select-doc-mode-hook 'noweb-auto-fill-doc-mode)
(add-hook 'noweb-select-code-mode-hook 'noweb-auto-fill-code-mode)

要禁用自动填充,请在dotemacs中添加以下一行或两行(取决于您是否要在代码和文档中禁用自动填充)。

(remove-hook 'noweb-select-doc-mode-hook 'noweb-auto-fill-doc-mode)
(remove-hook 'noweb-select-code-mode-hook 'noweb-auto-fill-code-mode)

答案 1 :(得分:4)

好的,我制定了一个可以解决问题的黑客行为:

(setq auto-fill-mode -1)
(setq-default fill-column 99999)
(setq fill-column 99999)

如果我无法关闭自动填充模式,至少我可以通过将其设置为仅填充第99999列来使其无害。如果我键入一个超过99999个字符的段落,我会很烦恼,但如果发生这种情况我会担心更大的事情......

答案 2 :(得分:3)

如果你看一下simple.el,就会定义最顶端的text-mode-hook,这最终导致这种憎恶(或者至少是对我而言)。

要获得simple.el并自己寻找:(C-h f,auto-fill-mode,点击/关注simple.el链接)

要禁用,M-x customize-variable text-mode-hook

Screen shot

取消选中开启自动填充功能。请务必点击顶部的“保存以供将来会话”。