如何在VS代码任务构建中添加额外的shell命令?

时间:2018-05-24 18:08:21

标签: python visual-studio-code sublimetext3 vscode-settings

环境: Windows 10 x64 VSCode版本1.23.1 python 3.6.4

我一直在尝试从sublime text 3切换到VS代码。 我在我的计算机上安装了python 3.6.4,所有这些都设置了PATH和其他东西。

在我的崇高文本3中,我将python 3(* .sublime-build)的构建设置为:

{ 
"shell_cmd": "python --version && echo. && python -u \"$file\"",

"cmd": ["C:/Users/jxie0/AppData/Local/Programs/Python/Python36/python.exe", "-u", "$file"], 
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9])*", 
"selector": "source.python" 
}

这将添加带有空行的python版本输出,在运行python代码之前,以print('hello world')为例:

Python 3.6.4

hello world
[Finished in 0.1s]

并且sublime会自动为代码添加一个计时器。

在我目前的VS.代码的task.json中,我有:

{
    "version": "0.1.0",
    "command": "python",
    "isShellCommand": true,
    "args": ["${file}"],
    "showOutput": "always"
}

这将有效,但只是简单地显示python代码的输出:

hello world

无论如何我可以把它调成可以给我与崇高文本相同的输出风格的东西吗?如果计时器不可用,至少可以添加一个shell命令作为标题来显示python 3版本吗?

其他问题:"version": "0.1.0",在VS代码中做了什么?它指的是哪个版本?

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以使用之前使用的相同命令,区别在于如何引用要传递的文件。在vscode中,等价物将是

python --version && echo && python -u ${file}

这个命令可以分为三个命令,第一个命令python --version打印python版本。第二个echo打印空行。第三个,python -u ${file},实际上运行python脚本。

至于计时器,我不知道如何在vscode中实现这一点,但在脚本本身实现这一点并不困难,例如Measure time elapsed in Python?

此任务的简单配置如下:

{
"version": "2.0.0",
    "tasks": [
        {
            "label": "python",
            "type": "shell",
            "command": "python --version && echo && python -u ${file}",
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "presentation": {
                "echo": true,
                "reveal": "always",
                "focus": false,
                "panel": "shared"
            }
        }
    ]
}

请注意,这假设您的路径上有python,否则在python.exe中使用python命令时必须指定command的路径。