How to edit Sublime Text build settings?
Solution 1:
edited
My original answer works, but there's a much better way of doing this, by creating your own build system. This use case is exactly why the feature is there.
Go to Tools
→ Build System
→ New Build System…
(all the way at the bottom) and enter the contents below. Save as C++ 11 Single File.sublime-build
, and it will now be accessible in the build system menu. Select it, hit CtrlB to build, and then hit CtrlShiftB to run the resulting program. Or you can use a Build and Run
option and call it by hitting CtrlB, then selecting that option.
{
"cmd": ["g++", "-std=gnu++11", "${file}", "-o", "${file_path}/${file_base_name}"],
"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
"working_dir": "${file_path}",
"selector": "source.c, source.c++",
"variants":
[
{
"name": "Run",
"cmd": ["${file_path}/${file_base_name}"]
},
{
"name": "Build and Run",
"cmd": ["g++ -std=gnu++11 ${file} -o ${file_path}/${file_base_name} && ${file_path}/${file_base_name}"],
"shell": true
}
]
}
If you need to edit it in the future, the file is in the User
folder of Packages
. The Packages
directory is the one opened when selecting Preferences → Browse Packages…
:
- Linux:
~/.config/sublime-text-3/Packages
or~/.config/sublime-text/Packages
- OS X:
~/Library/Application Support/Sublime Text 3/Packages
or~/Library/Application Support/Sublime Text/Packages
- Windows Regular Install:
C:\Users\YourUserName\AppData\Roaming\Sublime Text 3\Packages
orC:\Users\YourUserName\AppData\Roaming\Sublime Text\Packages
- Windows Portable Install:
InstallationFolder\Sublime Text 3\Data\Packages
InstallationFolder\Sublime Text\Data\Packages
The exact path depends on version and whether or not you upgraded from Sublime Text 3.
Solution 2:
In my case, the problem is that in Windows, ST3 was calling py instead of python which was the default. If you change python in "cmd": ["python", "-u", "$file"] for your local python interpreter, the new system should work.
{
"cmd": ["python3", "-u", "$file"],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python",
"env": {"PYTHONIOENCODING": "utf-8"},
"windows": {
"cmd": ["python", "-u", "$file"],
},
"variants":
[
{
"name": "Syntax Check",
"cmd": ["python3", "-m", "py_compile", "$file"],
"windows": {
"cmd": ["py", "-m", "py_compile", "$file"],
}
}
]
}