haskell-mode 的 source code 放在 github 上,有需要直接去下載就可以。安裝方法基本上就是直接找個地方丟,然後進去執行一下
> make haskell-mode-autoloads.el
接著再去 ~/.emacs 裡面加上 load-path 和喜歡的 hook等等。我自己只加上了下面這五行:
(add-to-list 'load-path "~/.emacs.d/modes/haskell-mode/")
(require 'haskell-mode-autoloads)
(add-to-list 'Info-default-directory-list "~/.emacs.d/modes/haskell-mode/")
(add-hook 'haskell-mode-hook 'turn-on-haskell-doc-mode)
(add-hook 'haskell-mode-hook 'turn-on-haskell-indent)
之後隨便打開一個 .hs 檔案然後 C-c C-l 看看有沒有正常運作就可以了。
### 找不到 hugs ?!
之所以這個看起來安裝過程並不複雜的東西會可以困擾我好一陣子,是因為我的 haskell-mode 在裝好以後就一直想要去跑 hugs,但是我根本就沒裝過 hugs 囧mmm。 這個問題的原因是:haskell-mode 會去判斷系統的 haskell interpreter 是哪套然後直接生對應的參數出來。但是那個 inf-haskell.el 不管怎樣就是認為我的電腦裡面是 hugs = =
總之,最後我還是懶得改 haskell-mode 的 source code,所以就直接調 .emacs 。這裡提供兩種稍微粗暴的作法:
**[方法一]** 就是直接從選單裡面去打開 Customize 這個頁面,然後點進 Inferior Haskell 這個子頁面並且修改 Haskell Program Name 這個變數到你自己的 ghci 路徑去。
**[方法二]** 直接打開 .emacs 並且暴力要求先讀入 haskell-mode 然後直接修改變數值;也就是在上面五行之後再加上下面兩行:
(autoload 'haskell-mode "haskell-mode" "..." t)
(setq haskell-program-name "/usr/loacl/bin/ghci")
這樣原則上就可以用了,不過其實這真的是個爛方法,我應該研究一下怎麼樣把變數設定做成一個 hook。但是這就要等我超級有空再說了 XD