Python Interpreter Shell con la integración de Vi (m) posible?

Me encanta usar bpython, pero en Ruby hay una gem llamada Interactive_editor que hace posible combinar Vi (m) con la shell de Ruby que hace que el proceso de Desarrollo sea mucho más cómodo. Una buena introducción a interactive_editor: http://vimcasts.org/episodes/running-vim-within-irb/

¿Existen herramientas (como el editor interactivo para Ruby) disponibles para combinar el shell de Python con Vi (m)?

Podrías echar un vistazo al complemento vim-ipython vim:

https://github.com/ivanov/vim-ipython

Esto requiere que instale el shell ipython (pero recomiendo hacerlo de todos modos, ya que agrega mucha funcionalidad al shell estándar de Python).

Si no quieres instalar ipython, te sugiero que eches un vistazo al complemento de ConqueShell para vim:

http://www.vim.org/scripts/script.php?script_id=2771

Esto te permite ejecutar shells dentro de vim. Una vez que haya obtenido el vim-ball, todo lo que necesita hacer es

 :ConqueTerm python 

para obtener un shell de python directamente en vim.

No pude hacer funcionar vim-ipython, así que hice esta solución .vimrc que funciona con ConqueShell:

 imap  m Vyp nmap  m Vyp vmap  m yp imap  n ']0j nmap  n ']0j 

Desde una nueva pantalla Vim y ConqueShell instalado, escriba :ConqueTermSplit python . Ahora regrese a la ventana original (el acceso directo es ) y escriba algún código de Python.

Para enviar la línea debajo del cursor al intérprete, presione m . Tengo al líder asignado a coma, así que es un movimiento bastante simple. Para enviar un bloque de código, resalte algunas líneas en modo visual y haga m . Funciona de la misma manera.

Para volver a su script, n va a la línea inmediatamente después de lo que acaba de ejecutar. Como beneficio adicional, también puede usar este comando para moverse de una ventana a otra rápidamente.

EDITAR (2-20-2015): si está usando ipython como intérprete, debe ejecutar %autoindent para desactivar la sangría automática para conservar el formato de algunos bloques de código. ¡Aclamaciones!