一、Run code运行机制
运行代码需要三个配置:
- 语言环境:就是你下载的语言,在命令行中可以运行的编译器。比如
g++ xxx.cpp
,javac xxx.java
和java xxx
、python xxx.py
- VSCode的调用语言环境编译器的插件:之所以你需要在这里配置编译器的路径,只是因为要让VSCode软件去调用可以在命令行中编译的语言环境编译器而已。比如
C/C++
,Python
之类的。
- VSCode的Run code插件:知道去怎么调用编译器后,还要说明让编译器怎么编译。这就是
setting.json
中"code-runner.executorMap"
的任务。
二、Run code的变量
Student.py
文件在d:\CodeProject\python\Student.py
中。
$workspaceRoot
:工作区绝对路径。d:\CodeProject
$dir
:要运行的文件所在的文件夹绝对路径,末尾带\
。d:\CodeProject\python\
$dirWithoutTrailingSlash
:要运行的文件所在的文件夹绝对路径,末尾不带\
。d:\CodeProject\python
$fileName
:只是文件的名字,带后缀。Student.py
$fileNameWithoutExt
:只是文件的名字,不带后缀。Student
$fullFileName
:相当于$dir
+$fileName
。d:\CodeProject\python\Student.py
三、说明
1.编译器路径
比如下面例子中C/C++的
Python的
2.“code-runner.executorMap”
比如python
"code-runner.executorMap": {
// 加上-u(unbuffered)参数后会强制其标准输出也同标准错误一样不通过缓存直接打印到屏幕
"python":"python -u $fullFileName"
},
"python"
表示要编译.py
文件"python -u $fullFileName"
:意思就和命令行下的python xxx.py
一个意思。用$fullFileName
是因为你在终端中的路径可能不是在要运行的文件处,就保险起见带上文件的绝对路径,一定能找到。
再比如java:
"java":"cd $dir && javac $fileName && java $fileNameWithoutExt"
因为没有还带着绝对路径的、没有后缀的文件名变量,就得先进入相应的文件夹cd $dir
,再编译javac $fileName
,运行java $fileNameWithoutExt
。&&
表示并且,连接多个bash命令在一行。
四、c++和python配置的例子
c_cpp_properties.json
:c++要用
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceFolder}/**"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
// [这里要改!]改成你安装mingw的目录下的/bin/g++.exe
"compilerPath": "D:/mingw64/bin/g++.exe",
"cStandard": "c11", // c用c11
"cppStandard": "c++17", // c++用17
"intelliSenseMode": "gcc-x64"
}
],
"version": 4
}
setting.json
:包含着c++和python
{
// 解决终端中文乱码
"terminal.integrated.shellArgs.windows": ["-NoExit", "/c", "chcp 65001"],
"terminal.integrated.fontFamily": "Lucida Console",
// code-runner插件运行在终端上
"code-runner.runInTerminal": true,
// code-runner插件点击运行自动保存文件
"code-runner.saveFileBeforeRun": true,
// c++ 配置
"files.associations": {
"array": "cpp",
"*.tcc": "cpp",
"istream": "cpp",
"streambuf": "cpp"
},
// [这里要改!]python配置,python.exe编译器的位置
"python.defaultInterpreterPath": "D:\\Python\\python.exe",
// 配置python插件执行的命令:用上面python.exe编译器,编译要执行的文件
"code-runner.executorMap": {
// 加上-u(unbuffered)参数后会强制其标准输出也同标准错误一样不通过缓存直接打印到屏幕
"python":"python -u $fullFileName"
},
}
五、自动格式化
开启这个后,就会在保存时自动格式化。
开启这个后,就会在运行时自动保存。从而在运行时自动格式化。