2011-09-30 8 views

Respuesta

4

Se puede crear una macro llamada de las líneas y ejecutarlos:

%macro foo 32-38 
foo 

Esto es útil si se desea ejecutar el mismo conjunto de líneas más de una vez. También las líneas no tienen que ser secuencial o en orden:

%macro bar 38 37 32-36 42 
+4

En las nuevas versiones de IPython, también se puede hacer volver a ejecutar '% 32-38' para ejecutarlos directamente, o' recuerdo% 32-38' si desea ajustar antes de ejecutar. –

+0

Si crea una macro, ¿persiste en todas las sesiones de ipython? –

11

que utilizar la lista de notación:

exec In[34:36] 

también, si se utiliza la función de edición para editar una parte, la lista de la voluntad tener su código en él, por lo que:

exec Out[35] 

Y mi favorito:

edit In[34:38] 

porque soy un vago dedos de grasa que rara vez se pueden hacer las cosas bien en el primer intento.

+2

Intenté su sugerencia para 'editar' el código del historial. Para mí (ipython 0.12) tu sintaxis solo funcionó para una ** línea de entrada **: 'edit In [13]'. Siempre falla en varias líneas de entrada: 'edit In [34:38]'. Lo que funcionó en su lugar fue 'edit 34-38'. –

+0

¡Huh! No lo he probado por un tiempo, (obviamente) teniendo el mismo problema con iPython 0.13 ... ¡gracias por el aviso! – dreynold

+0

¿Alguien da una actualización? Ninguno de los consejos en esta página funcionó para mí. Estoy en iPython 3.0.0 con Python 2.7. – kakyo

2

Puede editar líneas antes de ejecutarlas, así:

edit 1-5 

Al parecer, la sintaxis cambiada en algún momento de la lista-notación utilizada en la respuesta de dreynold.

8

Puede ejecutar código de sesiones anteriores con %recall. Ver %recall documentación here.

#Execute all code from previous session. 
%recall ~1/ 

#Execute all code from two sessions previous the current session. 
%recall ~2/ 

#Execute lines 1 to 5 from previous session. 
%recall ~1/1-5 
+0

Esa sintaxis no funciona para mí. Ipython == 5.1.0 –

Cuestiones relacionadas