2

1 台の PC で cluster mnesia をテストする場合、1 人の "Mac lion" ユーザーに対して多くの erlang ノードを作成する必要があります。彼ら".erlang"は同じユーザーに対して同じものを共有しているため、ファイルを介して記憶喪失を渡すことができません".erlang"。emacs erlang シェルの場合、ファイルを介して mnesia ディレクトリ構成を渡したい.emacsので、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=emacsmnesia 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 構成データとは異なります。

4

1 に答える 1

1

-mnesia引数のリストにandを別々の文字列に入れる必要がdirあり、ディレクトリも二重引用符で囲む必要があると思います。もちろん、Emacs Lisp ではエスケープする必要があります。

(setq inferior-erlang-machine-options '("-name" "emacs" "-mnesia" "dir" "\"/Users/yuchen/Documents/Project/mnesia_db\"") )
于 2012-05-22T09:51:47.297 に答える