在IPython中,我如何创建%magics的别名?

问题描述:

比方说,我想为%编辑-x创建别名%xed。我会怎么做?在IPython中,我如何创建%magics的别名?

+0

新答案是否适合您? – 2008-11-19 21:17:23

+0

是的!非常感谢。如果你想解释你做了什么,请看下面的问题;)。 – 2008-11-19 22:22:59

更新:第一个响应(下面)不接受参数。所以把这个片段放在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 

从文档魔法别名(%魔法?):

您也可以定义为魔术函数自己的别名 名。在您的 ipythonrc文件,将如下一行:

执行IPython的 .magic_pf = IPython的 .magic_profile

将定义%PF为 %配置文件的新名称。

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

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

有关更多详细信息,请参见here