2015-04-03 79 views
2

我使用configuration.nix同時安裝emacshaskellMode包的方式:如何讓Haskell模式包在Nixos上與Emacs一起使用?

environment.systemPackages = with pkgs; [ 
    (haskellPackages.ghcWithPackages (self : [ 
    self.cabalInstall 
    self.happy 
    self.alex 
    self.ghcMod 
    ])) 
    emacs 
    emacs24Packages.haskellMode 
]; 

.emacs文件包含:

(require 'haskell-mode) 
(add-hook 'haskell-mode-hook 'turn-on-hi2) 

的Emacs則沒有任何錯誤(啓動,所以我認爲它可以找到haskell-mode),但是當我打開.hs文件時,它不會進入Haskell次要模式。

~/.nix-profile/share/emacs/site-lisp/haskell-....文件確實存在於我的個人資料,如果它很重要...

所以,我怎麼做工作?

+0

你能用'M-x haskell-mode RET'手動啓用模式嗎? – Chris 2015-04-03 15:12:56

+0

Hi @Chris,當我這樣做時,我從Emacs中得到以下錯誤: 'post-command-hook(全局字體鎖定模式檢查緩衝區)錯誤:(void-variable haskell-font-lock-選擇的關鍵字)'。任何想法是什麼意思? – 2015-04-04 00:14:38

+0

看起來'haskell-mode.el'應該提供'haskell-font-lock-choose-keywords',但它似乎沒有定義,所以'haskell-mode'還沒有被加載出於某種原因? – 2015-04-04 00:19:13

回答

1

我遇到過嘗試使用haskell-indent而不是hi2的相同問題。 反正您通過做的輸出M-x haskell-mode RET haskell字體鎖丟失的警報。

通過聲明你(require 'haskell-font-lock)來解決這個問題。

然後如果你的.emacs文件有以下幾點:

(require 'haskell-mode) (add-hook 'haskell-mode-hook 'turn-on-hi2) 

您應該添加(require 'hi2)因爲它指出here

(require 'haskell-mode) 
(require 'haskell-font-lock) 
(require 'hi2) 
(add-hook 'haskell-mode-hook 'turn-on-hi2) 

請注意,hi2.el不是由haskell-mode包提供的。

希望這有助於!

相關問題