2008-11-17 12 views

Répondre

2

Mise à jour: La première réponse (ci-dessous) n'accepte pas les paramètres. Placez donc cet extrait à la fin du fichier ipy_user_conf.py (il se trouve dans votre répertoire personnel).

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) 

Avant la mise à jour: Est-ce qu'il doit être% magie? Vous pouvez utiliser la macro et stocker la magie pour reproduire ce comportement sans le% magique.

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

pour alias la magie de la documentation (% magie?):

Vous pouvez également définir vos propres noms crénelage pour les fonctions magiques . Dans votre ipythonrc, en plaçant une ligne comme:

execute ipython .magic_pf = ipython .magic_profile

définiront% pf sous un nouveau nom pour le profil de %.

Mais je ne sais pas comment ajouter le paramètre.

+0

Ceci est proche, mais il vous empêche ensuite de taper xed file.py pour ouvrir un fichier nouveau ou existant du nom donné. –

+0

Correction, je pense. Ignorer la mise à jour avant. Vous pouvez supprimer la macro avec: store -d xed –

+0

Yup, ça marche. Donc ce que vous faites est de décrire une toute nouvelle magie%, qui à son tour appelle le% edit habituel avec le paramètre ajouté. Self est l'instance actuelle du shell IPython, dont il semble que IPython passe comme premier paramètre. Est-ce que tout cela est plus ou moins précis? –

3

La réponse donnée ci-dessus utilise l'ancien système de magie. get_ipython().expose_magic est mort. Vous venez maintenant d'importer et d'utiliser des décorateurs pour tout cela.

Voir here pour plus de détails.