【问题标题】:Altering what Emacs loads depending upon file being editted根据正在编辑的文件更改 Emacs 加载的内容
【发布时间】:2012-01-24 19:06:51
【问题描述】:

目前,为了使用某个插件(nxhtml),我将以下语句放在我的 .emacs 中,

(load "<plugin-location>/autostart.el")

因此,每次我打开 emacs 时,它都会加载,无论我是否正在编辑该插件适用的文件(例如 .htm)。这种加载是不可取的,因为它需要几秒钟,我如何更改我的设置以便仅在我编辑 .htm 或 .css 文件时加载此插件?

【问题讨论】:

  • autostart.el 并没有做大量的工作——它设置自动加载声明以便将实际工作推迟到需要时。真的需要几秒钟吗?你字节编译了吗?
  • @phils 使用和不使用 load 语句在启动时会产生大约 5 秒的差异。我不确定字节编译的含义或您将如何去做。
  • 根据定义,解释语言不会像 C 这样的语言那样被“编译”;然而,许多解释型语言支持“字节编译”,这意味着源代码被压缩成一种形式,尽管仍然可以解释,但可以比原始源代码更快解释。 Emacs lisp 文件*.el 可以字节编译成等效的*.elc 文件,Emacs 将优先使用这些文件。有用于字节编译的标准命令,但在这种情况下 nXhtml 提供了自己的:M-x nxhtmlmaint-start-byte-compilation
  • 如此处所述,顺便说一句:ourcomments.org/Emacs/nXhtml/doc/nxhtml.html

标签: emacs nxhtml


【解决方案1】:

不知道你对插件的意思。对于特定格式的代码,我使用钩子:

(add-hook 'sgml-mode-hook
      '(lambda () (setq sgml-indent-data t)
         (turn-on-auto-fill))
      )

您可以尝试在挂钩中加载插件吗?

【讨论】:

    【解决方案2】:

    nXhtml 的 autostart.el 并没有做大量的工作(它设置了自动加载声明以便将实际工作推迟到需要时),但是如果您还没有对库进行字节编译,它仍然会很慢。

    nXhtml 提供了自己的命令来处理必要的字节编译(记录在http://ourcomments.org/Emacs/nXhtml/doc/nxhtml.html),因此您只需键入:

    M-x nxhtmlmaint-start-byte-compilation RET

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多