【问题标题】:mnesia dir setting in emacs for mnesia cluster testing用于 mnesia 集群测试的 emacs 中的 mnesia dir 设置
【发布时间】:2012-05-14 11:20:30
【问题描述】:

在一台电脑上测试集群 mnesia 时,我必须为一个“Mac lion”用户创建许多 erlang 节点。 因为他们为同一个用户共享相同的".erlang",所以我不能通过".erlang" 文件传递​​mnesia。 对于emacs erlang shell,我想通过.emacs文件传递mnesia目录配置,所以要修改distel的相关escript代码。

(add-hook 'erlang-mode-hook
      (lambda ()
        ;; when starting an Erlang shell in Emacs, default in the node name
        ; (setq inferior-erlang-machine-options '("-name" "emacs"))
        (setq inferior-erlang-machine-options '("-name" "emacs""-mnesia dir" "/Users/yuchen/Documents/Project/mnesia_db") )
             ;;added by chenyu 2012/04/08 
             (set (make-local-variable 'compile-command) (format "make -f %s" (get-closest-pathname)))
        ;; add Erlang functions to an imenu menu
        (imenu-add-to-menubar "imenu")))

以上代码中name=emacs可以,但mnesia dir无效。

(setq lower-erlang-machine-options '("-name" "emacs""-mnesia dir" "/Users/yuchen/Documents/Project/mnesia_db") )

节点起来后,我检查了mnesia路径配置。

(emacs@yus-iMac.local)12> mnesia:system_info(directory).
"/Users/yuchen/Mnesia.emacs@yus-iMac.local"

它与我的 .emacs 配置数据不同。

【问题讨论】:

    标签: emacs erlang


    【解决方案1】:

    我猜您需要将-mnesiadir 放在参数列表中的单独字符串中,并且您还需要将目录用双引号括起来,当然您必须转义在 Emacs Lisp 中:

    (setq inferior-erlang-machine-options '("-name" "emacs" "-mnesia" "dir" "\"/Users/yuchen/Documents/Project/mnesia_db\"") )
    

    【讨论】:

    • 感谢您的回复。我已经测试过了。但是经过测试,命令“mnesia:info()”总是显示“===> System info in version "4.6", debug level = none
    • 嗯,我自己测试了一下,对我来说mnesia:info显示了变量中指定的目录。不确定有什么不同...也许您可以通过 C-h v 检查 inferior-erlang-machine-options 是否真的设置为您所期望的?
    • 嗨,c-h, v 表明“它的值是 ("-name" "emacs")"。看来这行修改还是有些小错误的。我会更多地测试它。非常感谢。
    猜你喜欢
    • 2011-12-06
    • 2023-04-01
    • 2011-04-11
    • 2016-09-20
    • 2010-10-21
    • 2011-06-05
    • 2011-04-04
    • 2014-09-10
    • 2010-10-17
    相关资源
    最近更新 更多