关于如何键入注释我的ocaml prog的天真问题。在emacs中

时间:2011-06-25 20:38:30

标签: emacs types annotations ocaml tuareg

我听说我们可以注释ocaml prog。按他们的类型。论坛中较旧的帖子建议使用ocaml模式 http://cristal.inria.fr/~remy/poly/emacs/index.html

我一直在使用图阿雷格模式,其中建议使用“c-c c-t”来检索类型,参见这段代码在tuareg.el

 (when tuareg-with-caml-mode-p
      ;; Trigger caml-types
      (define-key map [?\C-c ?\C-t] 'caml-types-show-type)
      ;; To prevent misbehavior in case of error during exploration.
      (define-key map [(control mouse-2)] 'caml-types-mouse-ignore)
      (define-key map [(control down-mouse-2)] 'caml-types-explore)

我得到了“c-c c-t”未定义,虽然一切似乎都配置得很好。

这是.emacs文件

(setq auto-mode-alist
      (cons '("\\.ml[iyl]?$" .  caml-mode) auto-mode-alist))

(autoload 'caml-mode "ocaml" 
  "Major mode for editing Caml code." t)

(autoload 'camldebug "camldebug" 
  "Call the camldebugger on FILE" t)

;; adjust paths for emacs source code
(add-to-list 'load-path "~/my-emacs-config/caml-mode")

;; adjust paths for emacs ocaml info sources
(require 'info)
(add-to-list 'Info-directory-list "~/my-emacs-config/caml-mode")

这是caml-mode中的文件(包含ocaml.el)

bash-3.2$ ls ~/my-emacs-config/caml-mode/
caml-compat.el  caml-emacs.el   caml-font.el    caml-help.el    caml-hilit.el   caml-types.el   caml.el     camldebug.el    inf-caml.el ocaml.el

我做了以下

- 写一个阶乘函数。在ocaml中,称为“annot.ml”

let rec f n = 
if n = 1 then 0 else n * f(n-1)

- ocamlc -annot annot.ml

- 通过emacs打开annot.ml并在光标位于“n”下时按“c-c c-t”

我加入了emacs的迷你缓冲区

c-c c-t undefined

结论,我仍然无法检索类型。为什么???谢谢你的想法。

更多信息:当我尝试M-x caml- [tab]时,我得到以下列表,其中不包含caml-types-show-types

Possible completions are:
caml-mode              camldebug
camldebug-backtrace        camldebug-break
camldebug-close            camldebug-complete
camldebug-delete           camldebug-display-frame
camldebug-down             camldebug-finish
camldebug-goto             camldebug-kill
camldebug-last             camldebug-mode
camldebug-next             camldebug-open
camldebug-print            camldebug-refresh
camldebug-reverse          camldebug-run
camldebug-step             camldebug-up

1 个答案:

答案 0 :(得分:1)

您从caml-modeocaml.el自动加载ocaml.elc。但是没有这样的文件!官方Caml模式位于名为caml.el的文件中,图阿雷格模式位于名为tuareg.el的文件中。这解释了为什么打开.ml文件不会使您进入Ocaml模式并且不加载Caml支持。将您的自动加载更改为此选项以使用官方模式

(autoload 'caml-mode "caml" 
  "Major mode for editing Caml code." t)

或者这使用图阿雷格模式

(autoload 'caml-mode "tuareg" 
  "Major mode for editing Caml code." t)