erl不会自动完成使用-pa加载的代码

时间:2013-08-02 14:28:55

标签: autocomplete module erlang loading erl

这是我的第一个小时的Erlang实验。请你温柔一点。

  • 我检查了一个项目(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以显示新的路径项 - 我是否需要执行类似的操作?

1 个答案:

答案 0 :(得分:2)

您需要确保模块在 中加载,将其添加到-pa的路径中,只需告诉VM在尝试加载模块时在哪里查找模块。 有几种加载模块的方法

  • 调用应加载的模块中的函数(因此在执行eredis:start_link()调用后,您可以选项卡完成eredis)
  • 使用l(Module)
  • 明确加载模块
  • 以编程方式:code:load_file(Module)

Load all erlang modules in path非常有用!