Domanda

Ho appena trovato IPython e posso segnalare che sono profondamente innamorato. E l'affetto era immediato. Penso che questa relazione si trasformerà in qualcosa di duraturo, come quello che ho con lo schermo . Anche Ipython e lo schermo sono i migliori amici, quindi è un dramma triangolare. Puramente platonico, intendiamoci.

Il motivo per cui IPython colpisce i punti deboli con me è molto perché in genere mi piacciono i prompt dei comandi, e in particolare i prompt ispirati a * nix con ispirazione da ksh, csh (sì, chs è un mostro, ma come prompt è molto sportivo di ottime funzionalità), bash e zsh. E IPython si sente sicuramente a casa per un prompt rider * nix. Anche mescolare shell di sistema e python è davvero una buona idea. Inoltre, ovviamente, IPython aiuta molto a risolvere la sfida Python . Inestimabile anche.

Ora, adoro anche Vim. Da quando ho imparato vi ai giorni nostri non si può tornare indietro. E sono su Mac quando ho una scelta. Ora vorrei incollare insieme il mio flusso di lavoro IPython + MacVim. Quello che ho fatto finora è che inizio Ipython usando:

ipython -e "open -a MacVim"

Quindi quando modifico da IPython avvia MacVim con il file / modulo caricato. Potrebbe sembrare un po 'così:

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. Penso che questo possa essere migliorato. Forse c'è un modo per legare anche IPython a MacVim? Per favore, condividi le tue esperienze. Ovviamente, se usi TextMate o qualche altro editor preferito, sono interessato anche a me. Forse alcune delle lezioni sono generali.

È stato utile?

Soluzione

Uso Linux, ma credo che questo suggerimento possa essere usato anche in OS X. Uso GNU Screen per inviare comandi IPython da Vim come raccomandato da questo suggerimento . Ecco come lo faccio:

Innanzitutto, dovresti aprire un terminale e avviare una sessione schermo chiamata 'ipython' o come vuoi, quindi avviare IPython:

$ screen -S ipython
$ ipython

Quindi dovresti inserirlo nel tuo .vimrc:

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

Quindi quando premi F5, dirà a Screen di eseguire il comando '% run file' all'interno di 'ipython' creato in precedenza, dove file è il tuo buffer corrente in Vim.

Puoi modificarlo per eseguire il comando desiderato all'interno di IPython da Vim. Ad esempio, lo uso:

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

Questo esegue% reset (rispondendo sì al prompt), quindi passa alla directory in cui si trova il buffer corrente in vim e quindi% esegue il file. Ciò è particolarmente utile se hai% pdb attivo in IPython.

Non dimenticare che hai bisogno di una sessione schermo attiva chiamata 'ipython' con IPython in esecuzione all'interno.

Se ti piace Emacs. C'è un buon supporto per IPython.

Altri suggerimenti

Questa domanda è obsoleta ora, ma solo per riferimento - se stai usando IPython 0.11 con ZeroMQ abilitato, dai un'occhiata a vim-ipython (una versione precedente della quale era fornita con 0.11).

Usando questo plugin, puoi inviare linee o interi file per l'esecuzione di IPython, e anche ottenere l'introspezione degli oggetti e il completamento delle parole  in Vim, come quello che ottieni: object?<enter> e object.<tab> in IPython.

Dai un'occhiata a due screencast di questo plugin in azione su questo post .

Nel file ipythonrc.ini nella tua home directory cambia l'editor in MacVim.

Ho avuto lo stesso problema. Dopo aver sperimentato questa è la mia soluzione: se hai inserito MacVim.app in / Applicazioni e mvim è nel tuo percorso, in ~ / .ipython / ipythonrc cambia la riga

editor 0

a

editor mvim --remote-tab-wait-silent

Penso che tu debba tenere MacVim aperto in background. Puoi anche usare il flag -f. Guarda questa discussione dal gruppo google MacVim .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top