2013-08-02 28 views
2

這是我第一對Erlang實驗的幾個小時。所以請溫柔一點。erl沒有使用-pa加載自動完成的代碼-pa

  • 我簽出一個項目(https://github.com/wooga/eredis
  • 安裝鋼筋
  • 編譯的模塊(束文件走進EBIN)
  • 發射了ERL-PA ./ebin
  • 類型化EREDI - 和點擊標籤

此時沒有顯示任何內容,而所有其他模塊都是自動完成的。所以我(合理地)認爲模塊光束文件沒有被加載 - 導致我對各種路徑進行了毫無結果的調查,等等。

但是代碼已經加載,它只是沒有被自動完成。

1> {ok,C} = eredis:start_link(). 
{ok,<0.35.0>} 
2> eredis:q(C,["SET","foo","bar"]). 
{ok,<<"OK">>} 
3> eredis:q(C,["GET","foo"]).      
{ok,<<"bar">>} 

好,但我真的很喜歡自動完成工作。有沒有辦法讓它工作?例如,在Zsh中,我必須執行rehash以顯示新的路徑項 - 我是否需要在此執行類似的操作?

回答

2

您需要確保該模塊是在shell加載,將它添加到與-pa路徑只是告訴虛擬機在哪裏試圖加載它們時尋找模塊。 有加載模塊

  • 調用模塊中的功能應加載的幾種方式(這樣做的eredis:start_link()調用後,你將能夠使用Tab鍵完成eredis)
  • 顯式地加載與模塊l(Module)
  • 編程:code:load_file(Module)

Load all erlang modules in path是非常有用的!

+0

謝謝,很好的回答。 –