2010-04-18 91 views

回答

4

您可以通过定义一个user_default模块扩展shell命令模块在您的代码路径中。

Eshell V5.7.5 (abort with ^G) 
1> seq(1,4). 
[1,2,3,4] 
2> 
+0

+1。我不知道这件事。简直太棒了! :)我不会使用这个(或任何简单的方法,很难,因为我认为总是区分用户定义的模块和非用户定义的模块。 – 2010-04-19 09:05:50

2

我不这么认为。

但是你仍然可以在shell中使用tab完成,以方便使用。

为模块标签完成可以通过加载它来实现:

> l(foo). 

或手动调用从该模块首次任何功能。

+0

我试过,但该选项卡完成没有工作 – Zubair 2010-04-18 16:22:42

+0

我做L(MODULE_NAME),然后MODULE_NAME:start_of_function_name但它在名称 – Zubair 2010-04-18 16:23:15

+0

这听起来很奇怪,我从来没有填满。你在运行哪个版本的Erlang? – 2010-04-18 17:24:39

2

不能省略模块名,但你可以少打字,使用变量:

-module(user_default). 

-export([seq/2]). 

seq(A,B) -> lists:seq(A,B). 

确保编译:

1> lists:seq(1,10). 
[1,2,3,4,5,6,7,8,9,10] 
2> L = lists, S = seq. 
seq 
3> L:S(1,10). 
[1,2,3,4,5,6,7,8,9,10]