我听说我们可以注释 ocaml prog。按他们的类型。论坛中的一个旧帖子建议使用 http://cristal.inria.fr/~remy/poly/emacs/index.html的 ocaml 模式
我一直在使用 Tuareg 模式,它建议使用“cc ct”来检索类型,cf。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)
我得到了“cc ct”未定义,尽管一切似乎都配置得很好。
这是 .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 模式下的文件(包含 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”下时按“cc ct”
我进入了 emacs 的 minibuffer
c-c c-t undefined
结论,我仍然无法检索类型。为什么???谢谢你的想法。
更多信息:当我尝试 Mx 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