Disons que je veux créer l'alias% xed pour% edit -x. Comment je le ferais?Dans IPython, comment créer des alias pour% magics?
Répondre
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.
Ceci est proche, mais il vous empêche ensuite de taper xed file.py pour ouvrir un fichier nouveau ou existant du nom donné. –
Correction, je pense. Ignorer la mise à jour avant. Vous pouvez supprimer la macro avec: store -d xed –
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? –
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.
La nouvelle réponse fonctionne-t-elle pour vous? –
Oui! Merci beaucoup. Voyez ma question ci-dessous si vous avez envie d'expliquer ce que vous avez fait;). –