在每个文件(不是文件类型)的基础上禁用自动填充模式

Cal*_*laf 5 emacs dot-emacs

我默认为所有 LaTeX 文件启用自动填充模式。

这通常很好,但有时一个 Latex 文件主要包含表格,每当我编辑该特定文件时,我都想禁用自动填充模式。

是否可以在 .tex 文件的顶部指定我希望它是例外?或者,是否可以在 .emacs 中指定这些文件的路径/名称?

Tre*_*son 3

我喜欢在文件中查找某些内容来确定是否具有自动填充的解决方案。

如果你想在顶部放置一个标识符,你可以使用如下代码:

(defun my-auto-fill-disabling-hook ()
  "Check to see if we should disable autofill."
  (save-excursion
    (when (re-search-forward "Some Unique Identifier" 1000 t)
      (auto-fill-mode -1))))

(add-hook 'find-file-hooks 'my-auto-fill-disabling-hook)
Run Code Online (Sandbox Code Playgroud)

显然要更改"Some Unique Identifier"为合理的内容 - 例如搜索表格本身。然后你就会得到你想要的,带有表格的 LaTeX 文件不会被自动填充。

注意:@Alex 建议使用文件局部变量,但根据手册本身,这是一个错误:

然而,以这种方式启用次要模式通常是错误的。大多数次要模式(例如自动填充模式)代表了个人用户的偏好。如果您想使用次要模式,最好在您的初始化文件中设置主要模式挂钩,以便为您自己单独打开该次要模式(请参阅初始化文件),而不是使用局部变量列表将您的品味强加给每个人。

  • 如果你单独工作,并且文件太多,局部变量效果更好 - 这就是我建议这个解决方案的原因...... (2认同)