在IPython中如何为%magics创建别名?

时间:2008-11-17 16:25:59

标签: alias ipython magic-function

假设我想为%edit -x创建别名%xed。我该怎么做?

2 个答案:

答案 0 :(得分:3)

上面给出的答案使用旧的魔法系统。 get_ipython().expose_magic已经死了。您现在只需导入并使用装饰器。

有关详细信息,请参阅here

答案 1 :(得分:2)

更新:第一个响应(如下)不接受参数。所以把这个片段放在ipy_user_conf.py文件的末尾(它在你的主目录中)。

def ed_xed(self,arg):
    ip = self.api
    return ip.magic.im_class.magic_edit(ip.IP," -x %s "%arg)

ip.expose_magic('xed',ed_xed)

更新前: 它必须是魔法吗? 你可以使用宏和存储魔法来重现这种行为而不需要魔法%。

In [5]: %edit -x
In [6]: macro xed 5
In [7]: store xed
In [8]: xed

来自文档的魔术别名(%magic?):

  

您还可以定义自己的别名   魔术功能的名称。在你的   ipythonrc文件,放置如下行:

     

执行 IPYTHON .magic_pf =   的 IPython的 .magic_profile

     

将%pf定义为新名称   %轮廓。

但我不知道如何添加参数。