Question

Je viens de trouver IPython et je peux dire que je suis profondément amoureux. Et l'affection était immédiate. Je pense que cette affaire va se transformer en quelque chose de durable, comme celui que j’ai avec écran . Ipython et l'écran se trouvent être les meilleurs amis du monde aussi, alors c'est un drame triangulaire. Purement platonique, remarquez.

La raison pour laquelle IPython frappe les points faibles avec moi est due au fait que j'aime généralement les invites de commande, et particulièrement les invites inspirées de * nix et inspirées de ksh, csh (oui, chs est un monstre, mais il est rapide de très bonnes fonctionnalités), bash et zsh. Et IPython se sent vraiment comme chez soi pour un pilote d'invite * nix. Mélanger le shell système et le python est également une très bonne idée. De plus, bien sûr, IPython aide beaucoup lors de la résolution des Python Challenge . Inestimable même.

Maintenant, j'aime aussi Vim. Depuis que j'ai appris vi à l'époque, il n'y avait pas de retour en arrière. Et je suis sur Mac quand j'ai le choix. Maintenant, j'aimerais coller mon flux de travail IPython + MacVim. Jusqu'à présent, j'ai démarré Ipython avec

ipython -e "open -a MacVim"

Ainsi, lorsque je modifie depuis IPython, il démarre MacVim avec le fichier / module chargé. Pourrait ressembler un peu à ça:

In [4]: %run foo #This also "imports" foo anew
hello world

In [5]: edit foo
Editing... done. Executing edited code... #This happens immediately
hello world

In [6]: %run foo
hello SO World

OK Je pense que cela peut être amélioré. Peut-être y a-t-il un moyen de lier IPython à MacVim aussi? S'il vous plaît partager vos expériences. Bien sûr, si vous utilisez TextMate ou un autre éditeur de fav, je suis également intéressé. Certaines leçons sont peut-être générales.

Était-ce utile?

La solution

J'utilise Linux, mais je pense que cette astuce peut également être utilisée sous OS X. J'utilise Écran GNU pour envoyer des commandes IPython à partir de Vim, comme recommandé par ce conseil . Voici comment je le fais:

Tout d'abord, vous devez ouvrir un terminal et démarrer une session d'écran appelée "ipython" ou ce que vous voulez, puis démarrez IPython:

$ screen -S ipython
$ ipython

Ensuite, vous devriez mettre ceci dans votre .vimrc:

autocmd FileType python map F5 :w<CR>:!screen -x ipython -X stuff $'\%run %:p:h\n'<CR><CR>

Ensuite, lorsque vous appuierez sur F5, Screen demandera à l'exécution de la commande '% run file' à l'intérieur de 'ipython' créé précédemment, où fichier est votre mémoire tampon actuelle dans Vim.

Vous pouvez modifier cela pour exécuter la commande que vous voulez dans IPython à partir de Vim. Par exemple, j'utilise ceci:

autocmd FileType python map <F5> :w<CR>:!screen -x ipython -X stuff $'\%reset\ny\n\%cd %:p:h\n\%run %:t\n'<CR><CR>

Ceci exécute% reset (en répondant oui à l'invite), puis changez le répertoire où se trouve le tampon actuel dans vim puis% exécutez le fichier. Ceci est particulièrement utile si% pdb est actif dans IPython.

N'oubliez pas que vous avez besoin d'une session Screen active appelée "ipython" avec IPython s'exécutant à l'intérieur.

Si vous aimez Emacs. Il existe un bonne assistance pour IPython.

Autres conseils

Cette question est obsolète maintenant, mais juste pour référence - si vous utilisez IPython 0.11 avec ZeroMQ activé, consultez vim-ipython (une version antérieure fournie avec 0.11).

Grâce à ce plugin, vous pouvez envoyer des lignes ou des fichiers entiers à exécuter par IPython, ainsi que récupérer l'introspection des objets et la complétion des mots.  dans Vim, comme ce que vous obtenez avec: object?<enter> et object.<tab> dans IPython.

Jetez un coup d'œil à deux captures d'écran de ce plugin en action sur ce message .

Dans le fichier ipythonrc.ini de votre répertoire de base, remplacez l'éditeur par MacVim.

J'ai le même problème. Après avoir expérimenté, voici ma solution: si vous avez placé MacVim.app dans / Applications et que mvim est dans votre chemin, dans ~ / .ipython / ipythonrc, changez la ligne

editor 0

à

editor mvim --remote-tab-wait-silent

Je pense que vous devez garder MacVim ouvert en arrière-plan. Vous pouvez également utiliser le drapeau -f. Consultez ce fil à partir du Groupe Google MacVim .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top