顯示具有 Emacs 標籤的文章。 顯示所有文章
顯示具有 Emacs 標籤的文章。 顯示所有文章

2014年7月6日 星期日

[emac] Haskell-mode with ghci

自從改用 Emacs for mac os x 之後,原本一些 aquamacs 先包好的東西現在都沒有可以用爽爽。 其中最明顯的大概是 unicode 的問題,這邊可以找到我之前弄好的設定,不過細節等未來有機會再說。這邊要提的是一度讓我頭痛不已的另一個問題:haskell-mode。

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