In IPython (7.3.0), I can edit a multiline code block:
In [1]: def funtcion(a, b):
...: return a + b
...:
I then realize that I've made a typo, which I want to correct (|
marks the location of the cursor):
<press up arrow, then edit>
In [2]: def funct|ion(a, b):
...: return a + b
...:
I want to execute that:
<press enter>
In [2]: def funct
...: |ion(a, b):
...: return a + b
...:
...which doesn't really do what I want.
Is there a way to force IPython to execute the current cell?
As @AntiMatterDynamite has mentioned in the comments, you could navigate to the end of the block and then hit Enter
. But (for me, at least) that seems to miss the point.
Instead, try hitting Shift
+Enter
mid line, which should execute the current cell regardless of cursor position. This has always worked for me in Spyder's IPython console.
Interestingly, when I tested hitting Shift
+Enter
in a regular IPython console (ie. IPython initialised from the terminal, not from Spyder) it didn't work. However, hitting Esc
followed by Enter
did work.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With