You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VS Code中如何将单行、多行选中内容及代码块统一发送到终端而非交互/REPL环境

VS Code中如何将单行、多行选中内容及代码块统一发送到终端而非交互/REPL环境

我完全懂你这种混乱的感觉——一会儿Jupyter交互窗口,一会儿IPython终端,快捷键还不统一,太折腾人了!刚好我之前也遇到过一模一样的问题,给你整理了一套能把所有内容(单行、多行选中、代码块)都统一发送到同一个终端的方法,全程不用依赖交互/REPL环境:

第一步:先把执行环境统一成终端IPython

先打开VS Code的终端,输入ipython启动交互式Python shell,这就是你接下来所有代码要跑的唯一环境,记得关掉之前打开的Jupyter交互窗口,只保留这一个终端就行。

第二步:配置单行/多行选中内容的发送快捷键

按Ctrl+K再Ctrl+S打开快捷键设置面板:

  • 找到Run Selected Text in Active Terminal这个命令,把它绑定到你顺手的快捷键,比如你之前用的Ctrl+Enter,要是想统一用Shift+Enter也可以,看你习惯。
  • 重点:如果原来的Shift+Enter被Jupyter的命令占用了,找到Jupyter: Run Cell和Jupyter: Run Cell and Advance这两个命令,把它们的Shift+Enter绑定删掉,避免冲突。

第三步:让代码块(#%%)也能发送到同一个终端

默认的代码块运行是走Jupyter交互的,我们得改改让它也指向终端:
最省心的方法是用VS Code的宏命令,把「选中整个代码块+发送到终端」合并成一个快捷键:

  1. 点击快捷键设置面板右上角的{}图标,打开快捷键配置的JSON文件。
  2. 把下面这段配置粘贴进去(可以根据自己的习惯修改快捷键):
{
    "key": "shift+enter",
    "command": "runCommands",
    "args": {
        "commands": [
            "editor.action.expandSelectionToBlock",
            "workbench.action.terminal.runSelectedText"
        ]
    },
    "when": "editorLangId == 'python' && editorTextFocus && !editorReadonly"
}

这样一来,不管你光标在代码块的哪个位置,按Shift+Enter就会自动选中整个代码块,然后发送到你打开的IPython终端执行,和单行、多行选中内容的操作完全统一。

最后一步:彻底告别混乱

  • 如果你平时不用Jupyter的交互功能,可以在VS Code的设置里关掉Jupyter插件的自动启动选项(比如“Auto Start Jupyter Server”),防止它偷偷打开交互窗口。
  • 全程只保留一个IPython终端,所有操作都指向它,再也不会有多个窗口满天飞的情况了!

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.08 07:24:36