问题的提出
在sublime中可以配置自己的编译系统,但是由于软件自带了一些编译系统,而且其配置是默认的,也就可能会出现解释器路径不对,造成错误。那么如何修改自带的编译系统配置文件呢?
sublime中自带的编译系统
除开my_c_cpp、python35以外都是系统自带的编译系统配置文件。由于我没有找到这些配置文件,所以就没办法修改它们的配置,导致编译系统选择自动时,用Ctrl+B运行python文件默认是用系统自带的,而自带的解释器路径有问题,所以就报错。
如何找到自带的编译系统配置文件
解决方案参看:https://www.jianshu.com/p/d612f8da3ffa,下面来说一下步骤吧:
安装PackageResourceViewer插件
- 输入Ctrl+shift+P调出命令面板
- 输入install
- 输入PackageResourceViewer进行安装
设置默认的python.sublime-build
- 调出命令面板
- 输入resource,选择PackageResourceViewer:Open Resource
- 再选择python,在选择Python.sublime-build。这样就可以编辑配置了
如何查看该文件路径呢?
直接将鼠标放在文件名上,会出现该文件的路径。C:\Users\C子君\AppData\Roaming\Sublime Text 3\Packages\Python。修改其它自带的配置文件类似
编译系统中选择自动是什么意思?
就是可以根据当前文件类型,按下Ctrl+B时自动选择合适的编译系统,比如我写的是python程序,那么Ctrl+B就会自己选择为python编译系统(而由于原先有两个,一个是自带的python,还有个是我自己配的python35,会默认选择python)
自动选择的机制是什么呢?
首先来看一下编译系统的配置文件参数:
{
"shell_cmd": "D:/InitalSoftware/Anaconda3/envs/tensorflow/python.exe -u \"$file\"",
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python",
"env": {"PYTHONIOENCODING": "utf-8"},
"variants":
[
{
"name": "Syntax Check",
"shell_cmd": "D:/InitalSoftware/Anaconda3/envs/tensorflow/python.exe -m py_compile \"${file}\"",
}
]
}
- shell_cmd(自己配置的文件是cmd):编译命令(解释器路径)
- file_regex:不了解(可百度)
- selector:这个是重点,selector的值source.python代表了这个配置文件(编译系统)是给python文件用的,而我配置的编译系统文件my_c_cpp中selector的值是"source.c, source.c++",代表my_c_cpp这个编译系统是给c或c++用的,也就是如果文件后缀为.c,那么编译系统选择自动时就会用它。
- variants:感觉是一些可选命令。比如my_c_cpp中对应的值是:
{
......
"variants":
[
{
"name" : "Build Only",
"cmd":["g++", "${file}", "-std=c++11", "-o", "${file_path}\\\\${file_base_name}"]
},
{
"name" : "Run Only",
"cmd" : ["start", "cmd", "/c", "${file_path}\\\\${file_base_name} & echo. & pause"]
},
{
"name" : "Pipe Build and Run",
"cmd":["g++", "${file}", "-std=c++11", "-o", "${file_path}\\\\${file_base_name}","&","${file_path}\\\\${file_base_name}", "<","${file_path}\\\\in",">","${file_path}\\\\out"]
},
{
"name" : "Pipe Run Only",
"cmd" : ["${file_base_name}", "<","in",">","out"]
},
{
"name" : "Project Build & Run",
"cmd" : ["g++", "${file_path}\\\\*.cpp", "-std=c++11", "-o", "${file_path}\\\\project", "&", "start", "cmd", "/c", "${file_path}\\\\project & echo. & pause"]
},
{
"name" : "Project Build Only",
"cmd" : ["g++", "${file_path}\\\\*.cpp", "-std=c++11", "-o", "${file_path}\\\\project"]
},
{
"name" : "Project Run Only",
"cmd" : ["start", "cmd", "/c", "${file_path}\\\\project & echo. & pause"]
}
]
}
然后就可以更改软件自带的编译配置文件