aliasipythonmagic-function

In IPython how do I create aliases for %magics?


Let's say I want to create the alias %xed for %edit -x. How would I do it?


Solution

  • Update: The first response( below) does not accept parameters. So put this snippet at the end of the ipy_user_conf.py file ( it is in your home directory ).

    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)
    

    Before update: Does it has to be %magic? You can use the macro and store magic to reproduce this behavior without the magic %.

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

    for magic alias from the documentation ( %magic? ):

    You can also define your own aliased names for magic functions. In your ipythonrc file, placing a line like:

    execute IPYTHON.magic_pf = IPYTHON.magic_profile

    will define %pf as a new name for %profile.

    But I don't know how too add the parameter.