2012-05-04 43 views
2

當在一臺pc中測試集羣mnesia時,我必須爲一個「Mac lion」用戶創建許多erlang節點。 因爲他們共享相同的用戶".erlang",所以我不能通過".erlang"文件傳遞mnesia。 對於emacs erlang shell,我想通過.emacs文件傳遞mnesia目錄配置,所以distel的相關腳本代碼應該被修改。mnesia dir在emacs中爲mnesia集羣測試設置

(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劣-二郎 - 機 - 選項「( 「-name」 「emacs的」 「 - Mnesia的DIR」 「/用戶/雨辰/文件/項目/ mnesia_db」))

之後該節點是向上,我檢查了mnesia路徑配置。

([email protected])12> mnesia:system_info(directory). 
"/Users/yuchen/[email protected]" 

它和我的.emacs配置數據不一樣。

回答

1

我猜你需要將-mnesiadir放在參數列表中的單獨字符串中,並且還需要用雙引號包裝目錄,當然,您必須在Emacs Lisp中進行轉義:

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

謝謝您的回覆。我已經測試過它。但經過測試,命令「mnesia:info()」總是顯示「===>系統信息版本」4.6「,debug level = none <=== opt_disc。Directory」/Users/yuchen/[email protected] -iMac.local「被使用。」。 –

+0

嗯,我只是自己測試一下,對於我來說'mnesia:info'顯示變量中指定的目錄。不知道什麼可能不同......也許你可以用'C-h v'來檢查'erlang-machine-options'是否真的被設置爲你期望的? – legoscia

+0

嗨,c-h,v顯示「它的值是(」-name「」emacs「)」。看來這一行修改仍然存在一些小錯誤。我會更多地測試它。非常感謝你。 –