2011-04-09 25 views
1

我试图安装lua模式到emacs for windows,但似乎没有任何工作。我已经设置了我的HOME环境变量。我已将​​和lua-mode.el添加到HOME\.emacs.d目录。然后,我添加以下代码​​:当我启动Emacs和加载.lua文件插件在Emacs

(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) 

没有什么工作。主要模式总是设置为基本模式,没有其他选择可以改变。我能做些什么才能做到这一点?

+1

做'M-x lua-mode'工作吗? 'load-path'的价值是什么? – 2011-04-09 15:37:45

回答

2

这有可能是你的​​是从来不看,因为你也有你的$ HOME目录.emacs文件(或.emacs.el)。您可以在Emacs的init文件的这三种替代方法中进行选择,但只能读取其中的一个。传统上,这是.emacs,但某些操作系统在文件名语法方面存在问题。

此外,请确保您将​​放在您的实际主目录中,而不是名为“HOME”或其他目录。

有关Emacs init文件的更多详细信息,请参阅here,有关主目录的更多信息,请参阅here


如果你不热衷于使用​​变种,这里有指令,应该让卢阿模式的工作,你使用.emacs为:

  1. 启动一个新的Emacs
  2. 类型C-x C-f ~/.emacs <ENTER>( Cx表示按CTRL,按住,按下x,释放 - 对于Cf,同样)
  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-模式目录“与您保存文件lua-mode.el在您的硬盘上的目录的实际路径。

+0

+1我认为负载路径功能将解决他的问题。 – cschol 2011-04-10 13:37:01

+0

@cschol:这只是马赛克中的一块。如果缺少加载路径是造成这种情况的原因,那么在打开.lua文件时OP会收到错误消息。但是由于他没有收到错误,似乎init.el从未真正加载过。 – Thomas 2011-04-11 14:57:26

2

也许你需要类似(require 'lua-mode)或类似的东西?还要确保lua-mode文件位于load-path变量的目录中。事情是这样的任何事情之前:

(添加到列表“负载路径‘/home/dervin/.emacs.d/site-lisp/’)

或其它地方,并且那么require -

+0

它几乎和emacs一样,甚至没有看到我的'init.el'文件。即使我已经设置了主页和所有。我试着将代码行添加到它指向正确的文件夹,但它不起作用。我不知道现在该做什么。 – Graham 2011-04-09 18:42:17

+1

这是Windows吗?如果是这样,启动Emacs,编写'M-x pwd'(这会给你主目录),将init.el保存在那里(或者更好的是.emacs)。你可以做的另一件事:启动Emacs,加载init.el('C-x C-f'),然后写入'M-x eval-buffer',看看会发生什么。你可以做的第三件事是从控制台启动emacs并将'-u = <路径传递给init.el>'(或者--user = '的路径),看看会发生什么。 – 2011-04-09 20:04:19

2

行看起来不错。这可能取决于许多因素:

  • ​​文件在启动时未加载。 在Emacs中,这是一个非标准的名称。 Emacs尝试按顺序加载文件~/.emacs,~/emacs.el~/.emacs.d/init.el,并将加载找到的第一个文件。要验证您的文件已加载,您可以在其中添加(message "Loading my init.el")并检查*Messages*缓冲区。
  • 您存储文件lua-mode.el的目录不在加载路径中。实际上,~/.emacs.d目录不是标准加载路径的一部分。
+0

'init.el'不是一个非标准的名字。使用包含'init.el'的'.emacs.d'目录是将所有emacs配置文件保存在一个目录中的现代方式。 – sanityinc 2011-04-11 12:26:33

+0

哦,我不知道。我相应地更新了答案。谢谢! – Lindydancer 2011-04-11 13:48:34

+0

按照这个方案,你可以检查你的整个emacs配置到一个VC系统,像这样:http://github.com/purcell/emacs.d/ – sanityinc 2011-04-11 16:20:35