2012-04-03 16 views
8

Hola, soy nuevo en Linux y realmente me gusta la idea de escribir y probar el código python en un shell. Pero mi problema es cómo puedo hacer saltos de línea en IPython. Cada vez que utilizo el (creo que) el atajo "normal" shift + enter el código se ejecuta. Las teclas de función están deshabilitadas y el diseño del teclado funciona bien en mi computadora portátil, ¿cuál podría ser el problema?Linux - Linebreak en IPython

Respuesta

5

Nada es el problema. El código de Python se ejecuta línea por línea.

Si su código no funciona cuando se ejecuta línea por línea, no debería funcionar cuando se carga desde un archivo (suponiendo en ambos casos un entorno "limpio").

+0

Gracias por la respuesta @Marcin! Si quiero escribir una función o algo similar en Ipython, ¿necesito más de una línea para describirlo de la manera correcta (sangría) o estoy equivocado? Cuando envío 'def myfunction:' al compilador siempre aparece un error. – tecmec

+2

@danny Eso es un error porque 'def myfunction:' no es una python válida en ninguna parte. – Marcin

+0

¡Ahh tienes razón! 'def myfunction():', Sry, soy nuevo en Python también;) – tecmec

6

Si desea hacer un salto de línea, finaliza la línea con el carácter de escape \, igual que en un archivo de Python. Shift+Enter no tiene ningún significado especial en ipython, y de hecho la mayoría de los lugares en el caparazón. Tampoco tiene un significado especial en Python.

Tiene un significado especial en algunos editores de texto y procesadores de texto, sobre todo LyX y LibreOffice, y por supuesto en algunos sitios web (a través de un navegador web).

16

Acabo de encontrar una solución, publicado por Kenneth Falck: IPython newlines with ^V^J

Durante la edición de una línea múltiple código de bloque utilización Ctrl+V CTRL+J

+1

¡Gracias! Esto me estaba matando cuando intentaba editar bloques anteriores en IPython. – ShawnFumo

+2

FYI: en un programa de terminal como iTerm2, puede asignarlo a una tecla de acceso rápido. Configuro ctrl-enter para "Enviar códigos hexadecimales" de 0x16 0x0a. También podría usar cmd-enter o cualquier otra cosa que le resulte más cómoda. – ShawnFumo

+0

Este problema me apagó ipython por un tiempo. ¡Ahora estoy de vuelta! ¡Gracias! –