2012-07-09 38 views
7

我目前使用的是圖阿雷格模式,但我希望能夠使用caml模式的功能。特別是我希望能夠交互式地使用類型註釋,顯然這與caml類型有關。我嘗試將http://cristal.inria.fr/~remy/poly/emacs/index.html放入我的.emacs.d中,但我對這兩種模式如何或如果可以一起工作感到困惑。事實上,我不能讓caml模式工作。圖阿雷格模式和caml模式

我有這行我init.el:

(add-to-list 'load-path "~/.emacs.d/modes/caml") 

但文件沒有加載 - 至少,沒有一個功能定義或按鍵綁定的是。我真的認爲我已經開始瞭解這些emacs插件是如何工作的,但我開始懷疑。也許有人可以解釋還有什麼需要發生?

編輯:我沒有意識到我必須require 'caml這個工作。儘管如此,雖然我有http://caml.inria.fr/svn/ocaml/branches/gadts/emacs/的caml類型,但註釋似乎不起作用。我編譯-annot,但我仍然被告知沒有註釋文件。

回答

5

您可以使用tuareg模式進行類型註釋。 如果我有此確切〜/ .emacs文件:

(add-hook 'tuareg-mode-hook '(lambda() 
    (define-key tuareg-mode-map [f10] 'caml-types-show-type); requires caml-types 
)) 
(add-to-list 'auto-mode-alist '("\\.ml\\w?" . tuareg-mode)) 
(autoload 'caml-types-show-type "caml-types" "Show the type of expression or pattern at point." t) 

然後按F10顯示點下的表達式的類型。 如你所知,你需要編譯的文件foo.ml

ocamlc -annot foo.ml 

,以便有在同一個目錄中foo.ml文件foo.annot

+0

謝謝,這個工程。但我試圖綁定到「C-C C-t」而沒有成功。是否有一種特殊的格式用於在define-key中指定鍵? – scry 2012-07-09 15:22:53

+0

「C-c C-t」也可以在這裏使用,這個最小的.emacs不需要定義它。 – jrouquie 2012-07-09 15:55:10

+0

只要'tuareg-with-caml-mode-p'不是零 - 它應該啓用的時間是什麼時候,它看起來應該像所有的一樣工作?我覺得我不應該自己做。誒。 – scry 2012-07-11 00:43:19