Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
478 views
in Technique[技术] by (71.8m points)

python - How can i force SHIFT+ENTER to run selection and execute it immediately running ipython in vscode?

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")
   ...: 
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

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.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...