I have added the setting below in vscode to launch ipython when i used shift+enter to run selection.
"python.terminal.launchArgs": [
"-c",
"\"from IPython import start_ipython; start_ipython()\""
]
Now when i run a selection, the code will not execute in the terminal immediately, i need to navigate to the terminal and hit enter until it does.
This problem doesn't occur if i just use the basic python terminal to execute single lines.
Is there a setting to fix this so the snippet runs immediately in the terminal? I've searched preferences and can't find anything.
print("Hello World")
In [1]: print("Hello World")
...:
I was able to make some workaround.
You need to install extension multi-command
.
Add this code in settings.json
"multiCommand.commands": [
{
"command": "multiCommand.executeIPython",
"sequence": [
"python.execSelectionInTerminal",
"workbench.action.terminal.focus",
"workbench.action.terminal.scrollToBottom",
{"command": "workbench.action.terminal.sendSequence",
"args": { "text": "\u000D" }},
"workbench.action.focusActiveEditorGroup"
]
},
]
And then you can use this command as shortcut (add to keybindings.json
):
{
"key": "shift+enter",
"command": "multiCommand.executeIPython",
"when": "editorTextFocus && !findInputFocussed && !python.datascience.ownsSelection && !replaceInputFocussed && editorLangId == 'python'"
}
Unfortunately for the first time (when ipython console is not opened) you need to hit enter. But later it works as it should.