2012-04-03 8 views
8

Hallo Ich bin neu in Linux und ich mag die Idee, Python-Code in einer Shell zu schreiben und zu testen. Aber mein Problem ist, wie kann ich Zeilenumbrüche in IPython machen. Jedes Mal, wenn ich den (ich glaube) "normalen" Shortcut Shift + Enter benutze, wird der Code ausgeführt. Funktionstasten sind deaktiviert und Tastaturlayout funktioniert gut auf meinem Laptop, was könnte das Problem sein?Linux - Linebreak in IPython

Antwort

5

Nichts ist das Problem. Python-Code wird Zeile für Zeile ausgeführt.

Wenn Ihr Code nicht funktioniert, wenn er Zeile für Zeile ausgeführt wird, sollte er nicht funktionieren, wenn er aus einer Datei geladen wird (vorausgesetzt, in beiden Fällen ist eine "saubere" Umgebung vorhanden).

+0

Danke für Ihre Antwort @Marcin! Wenn ich eine Funktion oder etwas Ähnliches in Ipython schreiben möchte, brauche ich mehr als eine Zeile, um es richtig zu beschreiben (Einrückung) oder ich liege falsch? Wenn ich 'def myfunction:' an den Compiler sende, erscheint immer ein Fehler. – tecmec

+2

@danny Das ist ein Fehler, weil 'def myfunction:' nirgends gültiges Python ist. – Marcin

+0

Ahh du hast Recht! 'def myfunction():', Sry, ich bin auch neu bei Python;) – tecmec

6

Wenn Sie einen Zeilenumbruch durchführen möchten, beenden Sie die Zeile mit dem Escapezeichen \, genau wie in einer Python-Datei. Shift+Enter hat keine spezielle Bedeutung in ipython, und zwar am meisten über Plätze in der Shell. Es hat auch keine besondere Bedeutung in Python.

Es hat eine besondere Bedeutung in einigen Text-Editoren und Textverarbeitungsprogramme, vor allem LyX und LibreOffice, und natürlich auf einigen Websites (über einen Webbrowser).

16

Ich kam in einer Lösung, die von Kenneth Falck posted: IPython newlines with ^V^J

Während einer Verwendung Blockcode mehrzeilige Bearbeitung Ctrl+V CTRL+J

+1

Danke! Das hat mich beim Versuch, vorherige Blöcke in IPython zu bearbeiten, zunichte gemacht. – ShawnFumo

+2

FYI: In einem Terminalprogramm wie iTerm2 können Sie dies einem Hotkey zuweisen. Ich setze ctrl-enter auf "Send hex codes" von 0x16 0x0a. Könnte auch cmd-enter oder was auch immer am bequemsten ist verwenden. – ShawnFumo

+0

Dieses Problem hat Ipython für eine Weile ausgeschaltet. Jetzt bin ich zurück! Vielen Dank! –