2012-04-23 13 views
9

Me encanta usar bpython, pero en Ruby hay una gema llamada interactive_editor que hace posible combinar Vi (m) con el shell Ruby, lo 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/Python Interpreter Shell con integración Vi (m) posible?

¿Hay alguna herramienta (como interactive_editor for Ruby) disponible para combinar el shell de Python con Vi (m)?

+0

err, Pry tiene las características de 'interactive_editor' integradas, ¿te das cuenta de esto, verdad? [ver aquí] (https://github.com/pry/pry/wiki/Editor-integration) – horseyguy

+0

Una solución pragmática podría ser seguir los consejos dados aquí - http://stackoverflow.com/questions/6636124/how- do-i-make-vi-editing-mode-work-in-irb-when-using-rvm Esto es si solo quieres que las asociaciones de teclas del intérprete python sean consistentes con VI – arcseldon

Respuesta

11

usted podría tener un vistazo a la vim-ipython vim plugin:

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

Esto requiere que se instale la cáscara ipython (pero recomiendo hacer esto de todos modos, ya que añade un montón de funcionalidades a la shell de python estándar).

Si no desea instalar ipython, sugiero echar un vistazo al plugin para vim ConqueShell:

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

Esto le permite ejecutar conchas dentro de vim. Una vez que haya establecido la fuente del vim-ball, todo lo que necesita hacer es

:ConqueTerm python 

para obtener un intérprete de Python directamente en vim.

+0

Muchas gracias, eso es exactamente lo que estaba buscando para. – StandardNerd

+0

ConqueTerm se ve increíble, +1 – Sam

1

no pude conseguir vim-ipython a trabajar, así que hice esta solución .vimrc que trabaja con ConqueShell:

imap <silent> <leader>m <Esc>Vy<C-w><C-w>p 
nmap <silent> <leader>m Vy<C-w><C-w>p 
vmap <silent> <leader>m y<C-w><C-w>p 
imap <silent> <leader>n <Esc><C-w><S-w>']0j 
nmap <silent> <leader>n <C-w><S-w>']0j 

De una nueva pantalla Vim e instalado ConqueShell, tipo :ConqueTermSplit python. Ahora regrese a la ventana original (el atajo es <C-w><S-w>) y escriba algún código de Python.

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

Para volver a su secuencia de comandos, <leader>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 pasar de una ventana a otra rápidamente.

EDITAR (20 -20-2015): Si usa 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!

Cuestiones relacionadas