2

これは、Erlang の実験の最初の数時間です。だから優しくしてください。

  • プロジェクトをチェックアウトしました ( https://github.com/wooga/edis )
  • 設置された鉄筋
  • モジュールをコンパイルしました (beam ファイルは ebin に入りました)
  • 興奮した erl -pa ./ebin
  • edi を入力してタブを押します

この時点では何も表示されていませんでしたが、他のすべてのモジュールはオートコンプリートされていました。したがって、私は(合理的に)モジュールビームファイルがロードされていないと仮定しました-パスなどのあらゆる種類の無駄な調査につながりました.

しかし、コードはロードされていましたが、オートコンプリートされていませんでした。

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 では、新しいパス項目が表示されるように再ハッシュを実行する必要があります。ここで同様のことを実行する必要がありますか?

4

1 に答える 1

2

モジュールがシェルにロードされていることを確認する必要があります。モジュールをパスに追加すると-pa、モジュールをロードしようとするときにモジュールを探す場所が VM に伝えられます。モジュールをロードする方法はいくつかあります

  • ロードする必要があるモジュール内の関数を呼び出します (そのため、eredis:start_link()呼び出しを行った後、eris をタブで補完できるようになります)
  • モジュールを明示的にロードしますl(Module)
  • プログラムで:code:load_file(Module)

パス内のすべての erlang モジュールをロードすることは非常に便利です!

于 2013-08-02T14:50:02.473 に答える