在一台PC上测试群集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 inferior-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配置数据不同。
答案 0 :(得分:1)
我猜你需要将-mnesia
和dir
放在参数列表中的单独字符串中,并且你需要用双引号包装目录,当然这是你的' d必须在Emacs Lisp中逃脱:
(setq inferior-erlang-machine-options '("-name" "emacs" "-mnesia" "dir" "\"/Users/yuchen/Documents/Project/mnesia_db\"") )