在Emacs中使用插件

我正在尝试在 Windows 的 Emacs 中安装 lua-mode,但似乎没有任何效果。我设置了 HOME 环境变量。我将 init.ellua-mode.el 添加到 HOME\.emacs.d 目录中。然后我将以下代码添加到 init.el 中:

(autoload 'lua-mode "lua-mode" "Lua editing mode." t)
(add-to-list 'auto-mode-alist '("\\.lua$" . lua-mode))
(add-to-list 'interpreter-mode-alist '("lua" . lua-mode))

(add-hook 'lua-mode-hook 'turn-on-font-lock)

但是当我启动 Emacs 并加载一个 .lua 文件时,什么也没发生。主要模式总是设置为 fundamental,并没有其他可以更改的选项。我该怎么做才能让它正常工作?

原文链接 https://stackoverflow.com/questions/5605930

点赞
stackoverflow用户50305
stackoverflow用户50305

也许你需要像 (require 'lua-mode) 这样的东西?并且确保 lua-mode 文件在你的 load-path 变量的目录中。在任何其他事情之前像这样做:

(add-to-list 'load-path "/home/dervin/.emacs.d/site-lisp/")

或者其他地方,然后用 require 去使用。

2011-04-09 15:35:40
stackoverflow用户623133
stackoverflow用户623133

这些行看起来没问题。这可能取决于多个因素:

  • init.el 文件在启动时没有被加载。实际上,在 Emacs 中,这不是一个标准名称。Emacs 会按顺序加载文件 ~/.emacs~/emacs.el~/.emacs.d/init.el,并加载找到的第一个文件。要验证文件是否已加载,您可以在其中添加 (message "Loading my init.el") 并检查 *Messages* 缓冲区。
  • 您存储 lua-mode.el 文件的目录不在加载路径中。实际上,~/.emacs.d 目录不是标准加载路径的一部分。
2011-04-09 18:40:52
stackoverflow用户261142
stackoverflow用户261142

可能你的init.el并没有被读取,因为你的 $HOME 目录下也有一个 .emacs 文件(或 .emacs.el)。你可以选择这三个选项之一做为 Emacs 的初始化文件,但是只有其中一个会被读取。传统上来说,这是.emacs,但是一些操作系统对这个文件名的语法存在问题。

此外,请确保你将 init.el 放在你实际的主目录下,而不是一个被称为“HOME”或其他名称的目录下。

欲了解更多 Emacs 初始文件的详细信息,请参阅此处,更多关于主目录的信息,请参阅此处


如果你不喜欢使用 init.el 变体,下面是使用 .emacs 让 lua-mode生效的指示:

  1. 开启新的 Emacs

  2. 输入 C-x C-f ~/.emacs <ENTER>(C-x 表示按下CTRL,保持,按下x,释放 - 对于C-f也是如此)

  3. 插入以下行:

    (add-to-list 'load-path "/path/to/lua-mode-dir")
    
    (autoload 'lua-mode "lua-mode" "Lua editing mode." t)
    (add-to-list 'auto-mode-alist '("\\.lua$" . lua-mode))
    (add-to-list 'interpreter-mode-alist '("lua" . lua-mode))
    
    (add-hook 'lua-mode-hook 'turn-on-font-lock)
    
  4. 输入 C-x C-s 来将缓冲区保存到文件中。

  5. 输入 C-x C-c退出 Emacs。

请注意,在步骤 3 中,你需要根据你在硬盘上保存 lua-mode.el 文件的实际路径,来调整 /path/to/lua-mode-dir

2011-04-10 11:02:42