【问题标题】:erl does not autocomplete code loaded using -paerl 不会自动完成使用 -pa 加载的代码
【发布时间】:2013-08-03 20:59:58
【问题描述】:

这是我最初几个小时的 Erlang 实验。所以请温柔一点。

  • 我签出了一个项目 (https://github.com/wooga/eredis)
  • 安装钢筋
  • 编译模块(beam 文件进入 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 才能显示新的路径项 - 我需要在这里执行类似的操作吗?

【问题讨论】:

    标签: autocomplete module erlang loading erl


    【解决方案1】:

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

    • 在模块中调用一个应该加载的函数(所以在执行eredis:start_link() 调用之后,您将能够使用制表符完成 eredis)
    • 使用l(Module) 显式加载模块
    • 以编程方式:code:load_file(Module)

    Load all erlang modules in path很有用!

    【讨论】:

      猜你喜欢
      • 2012-11-05
      • 2015-08-20
      • 2014-08-08
      • 2023-03-20
      • 2016-08-31
      • 2014-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多