2011-04-09 45 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