Code Runner

用法

  • 运行代码:
  • 使用快捷键 Ctrl+Alt+N
  • 按F1然后选择/键入 Run Code
  • 右键单击文本编辑器,然后在编辑器上下文菜单中单击 Run Code 命令
  • 单击编辑器标题菜单中的 Run Code 按钮
  • 单击资源管理器文件上下文菜单中的 Run Code 命令
  • 停止正在运行的代码:
  • 使用快捷键 Ctrl+Alt+M
  • 按F1然后选择/键入 Stop Code Run
  • 在输出通道中单击右键,然后在上下文菜单中单击 Stop Code Run 命令
  • 要选择要运行的语言,请使用快捷键 Ctrl+Alt+J ,或按 F1 ,然后选择/键入 Run By Language ,然后键入或选择要运行的语言:例如 php、javascript、bat、shellscript…
  • 若要运行自定义命令,请使用快捷键 Ctrl+Alt+K ,或按 F1 ,然后选择/键入Run Custom Command

配置

确保在环境变量PATH中设置了每种语言的执行器
您还可以将执行器路径添加到 code-runner.executorMap 配置中
例如设置ruby,php和html执行器的路径:

{
    "code-runner.executorMap": {
        "javascript": "node",
        "php": "C:\\php\\php.exe",
        "python": "python",
        "perl": "perl",
        "ruby": "C:\\Ruby23-x64\\bin\\ruby.exe",
        "go": "go run",
        "html": "\"C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe\"",
        "java": "cd $dir && javac $fileName && java $fileNameWithoutExt",
        "c": "cd $dir && gcc $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt"
    }
}

支持的自定义参数

  • $workspaceRoot: 在VS Code中打开的文件夹的路径
  • $dir: 正在运行的代码所在文件的目录
  • $dirWithoutTrailingSlash: 正在运行的代码所在文件的目录,不带斜杠
  • $fullFileName: 正在运行的代码所在文件的全名
  • $fileName: 正在运行的代码所在文件的基本名称,即不包含目录的文件名
  • $fileNameWithoutExt: 正在运行的代码所在文件的基本名称,不包含文件的扩展名
  • $driveLetter: 正在运行的代码所在文件的磁盘号(仅限Windows)
  • $pythonPath: Python解释器的路径(由 Python: Select interpreter 命令设置)

请注意执行器文件路径中的反斜杠和空格

  • 反斜杠: 请使用 \\
  • 如果路径中包含空格, 请使用 \" 环绕文件路径

您可以使用通配符配置每个文件名的执行器

{
    "code-runner.executorMapByGlob": {
        "pom.xml": "cd $dir && mvn clean package",
        "*.test.js": "tap",
        "*.js": "node"
    }
}

此外,您可以配置要运行的默认语言:

{
    "code-runner.defaultLanguage": "javascript"
}

**对于默认语言:**应使用 VS Code 中定义的语言id进行配置.您可以配置的语言为: java, c, cpp, javascript, php, python, perl, ruby, go, lua, groovy, powershell, bat, shellscript, fsharp, csharp, vbscript, typescript, coffeescript, swift, r, clojure, haxe, objective-c, rust, racket, ahk, autoit, kotlin, dart, pascal, haskell, nim, d, lisp

此外,您还可以配置每个文件扩展名的执行器:

{
    "code-runner.executorMapByFileExtension": {
        ".vbs": "cscript //Nologo"
    }
}

配置要运行的自定义命令:

{
    "code-runner.customCommand": "echo Hello"
}

配置工作目录:

{
    "code-runner.cwd": "path/to/working/directory"
}

配置是否在每次运行前清除以前的输出(默认值为false):

{
    "code-runner.clearPreviousOutput": false
}

配置是否在运行前保存所有文件(默认值为false):

{
    "code-runner.saveAllFilesBeforeRun": false
}

配置是否在运行前保存当前文件(默认值为false):

{
    "code-runner.saveFileBeforeRun": false
}

配置是否显示额外的执行消息,如 [Running] … 和 [Done] … (默认值为true):

{
    "code-runner.showExecutionMessage": true
}

**[REPL(交互式解释器) 支持]**配置是否在集成终端中运行代码(仅支持在集成终端运行整个文件,不支持 untitled 文件或代码片段)(默认值为false):

{
    "code-runner.runInTerminal": false
}

配置在触发代码运行后是否保持对代码编辑器的焦点(默认值为true,代码编辑器将保持焦点;如果为false,终端或输出通道将保持焦点):

{
    "code-runner.preserveFocus": true
}

code-runner.ignoreSelection: 是否忽略所选择的行,始终运行整个文件. (默认是 false)

code-runner.showRunIconInEditorTitleMenu: 是否在编辑器标题菜单中显示 ‘Run Code’ 图标. (默认是 true)

code-runner.showRunCommandInEditorContextMenu: 是否在编辑器上下文菜单中显示 ‘Run Code’ 命令. (默认是 true)

code-runner.showRunCommandInExplorerContextMenu: 是否在资源管理器上下文菜单中显示 ‘Run Code’ 命令. (默认是 true)

code-runner.showStopIconInEditorTitleMenu: 代码运行时是否在编辑器标题菜单中显示 ‘Stop Code Run’ 图标. (默认是 true)

code-runner.terminalRoot: 对于Windows系统,当使用自定义shell作为终端(如Bash或Cgywin)时,将命令中的Windows样式的磁盘号替换为Unix样式的根目录. 例如: 配置为使用 /mnt/ 替换 C:\path/mnt/c/path (默认是 “”)

code-runner.temporaryFileName: 运行所选代码段时使用的临时文件名.当它设置为空时,文件名将是随机的. (默认是 “tempCodeRunnerFile”)

code-runner.respectShebang: 是否遵循 Shebang 来运行代码. (默认是 true)

关于CWD的配置 (当前工作目录Current Working Directory)

  1. 默认使用 code-runner.cwd 配置
  2. 如果 code-runner.cwd没有配置和 code-runner.fileDirectoryAsCwdtrue, 使用执行文件的目录
  3. 如果 code-runner.cwd 没有配置和 code-runner.fileDirectoryAsCwdfalse, 使用 VS Code 中打开的根文件夹的路径
  4. 如果没有目录被打开, 使用操作系统的临时目录

注意:

  • 对于 Objective-C,仅 macOS 支持
  • 要运行 C# 脚本,您需要安装 scriptcs
  • 要运行 TypeScript,您需要安装 ts-node
  • 要运行 Clojure,您需要安装 Leiningen 和 lein-exec

监测数据

默认情况下,打开监测数据收集以了解用户行为并以此改进此扩展.要禁用它,请配置 settings.json 如下:

{
    "code-runner.enableAppInsights": false
}