Emacs 中用于助记符集群测试的 Mnesia DIR 设置



在一台PC上测试集群记忆时,我必须为一个"Mac lion"用户创建许多erlang节点。因为它们为同一用户共享相同的".erlang",所以我无法通过".erlang"文件传递助记符。对于 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 配置数据不同。

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

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

最新更新