emacs中的mnesia dir设置用于mnesia群集测试

emacs中的mnesia dir设置用于mnesia群集测试,emacs,erlang,Emacs,Erlang,在一台pc上测试集群mnesia时,我必须为一个“MacLion”用户创建多个erlang节点。 因为它们为同一用户共享相同的“.erlang”,所以我无法通过“.erlang”文件传递mnesia。 对于emacs erlang shell,我想通过.emacs文件传递mnesia目录配置,因此应该修改distel的相关escript代码 (add-hook 'erlang-mode-hook (lambda () ;; when starting an Erlan

在一台pc上测试集群mnesia时,我必须为一个“MacLion”用户创建多个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-erlang机器选项“(“-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配置数据不同。

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

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

谢谢你的回复。我已经测试过了。但是在测试之后,命令“mnesia:info()”总是在版本“4.6”中显示“=>系统信息”“,debug level=none-Hm,我只是自己测试了它,对我来说,
mnesia:info
显示变量中指定的目录。不确定会有什么不同。。。也许您可以使用
C-hv
检查
subsier erlang machine options
是否真的设置为您期望的值?嗨,C-h,v显示“其值为(“-name”“emacs”)”。看来这一行的修改还有些小错误。我将进一步测试它。非常感谢你。