【问题标题】:Disable auto fill mode in noweb-mode在 noweb-mode 中禁用自动填充模式
【发布时间】:2010-12-06 17:30:54
【问题描述】:

看在上帝的份上,我怎样才能让 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)))

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

【问题讨论】:

    标签: emacs autofill


    【解决方案1】:

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

    如果你看到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)
    

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

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

    【讨论】:

      【解决方案2】:

      好的,我想出了一个技巧:

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

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

      【讨论】:

        【解决方案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

        取消选中开启自动填充。请务必点击顶部的“保存以备将来使用”。

        【讨论】:

        • 这是一个很好的建议,但是如果你想在text-mode 及其派生类中默认保留auto-fill-mode,但只是在某些特定模式下禁用它,比如noweb-modelatex-mode ?
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-11-13
        • 1970-01-01
        • 2011-04-10
        • 2012-09-13
        • 2013-03-22
        相关资源
        最近更新 更多