1.Sublime Text 3作为老牌的编辑器性能和稳定性还是很不错的. 它一般只启动了单进程, 不像vscode那样启动一个简单的项目全部进程加起来基本上都要300M的内存使用量. 如果只是想快速轻便验证C++程序,它还是比vscode方便和快速的.
2.Sublime Text 3需要购买注册, 但是也可以不注册,不注册它就是偶尔会弹出窗口提醒你注册,关掉可以继续使用.
下载安装Sublime Text 3
1.Sublime Text 3的C++支持官方只有语法高亮支持,没了!它也有项目单独的编译运行配置,也有全局的编译运行配置。项目配置不是必须的,可以通过菜单->Project->Save Project As...来保存当前所有打开的文件和文件夹作为配置项,配置项里也可以添加构建配置,和全局的基本一样.详细的说明点这里.
项目文件例子.sublime-project. 配置好的可以在Tools->Build System里找到构建名字.name
{ "folders": [ { "path": "." }, { "path": "E:\\Project\\Company\\73.wtl-project" } ], "build_systems": [ { "name":"make-cygwin-test", "cmd": ["E:/software/cygwin64/bin/make.exe","-C","${project_path}\\test\\cygwin","-f", "${project_path}\\test\\cygwin\\Makefile","CONF=Debug"], "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$", "working_dir": "${project_path}\\test\\cygwin", "selector": "source.c, source.c++", "env": { "PATH": "E:/software/cygwin64/bin" }, "variants": [ { "name": "Run", "cmd": ["${project_path}\\test\\cygwin\\dist\\Debug\\app.exe","--gtest_filter=test_ScanPartition.TestWindowsFileRecovery"] }, { "name": "Clean", "cmd": ["E:/software/cygwin64/bin/make.exe","-C","${project_path}\\test\\cygwin","-f", "${project_path}\\test\\cygwin\\Makefile","CONF=Debug","clean"] } ] }, { "name":"make-cygwin", "cmd": ["E:/software/cygwin64/bin/make.exe","-C","${project_path}\\cygwin","-f", "${project_path}\\cygwin\\Makefile","CONF=Debug"], "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$", "working_dir": "${project_path}\\cygwin", "selector": "source.c, source.c++", "env": { "PATH": "E:/software/cygwin64/bin" }, "variants": [ { "name": "Run", "cmd": ["${project_path}\\cygwin\\dist\\Debug\\app.exe"] }, { "name": "Clean", "cmd": ["E:/software/cygwin64/bin/make.exe","-C","${project_path}\\cygwin","-f", "${project_path}\\cygwin\\Makefile","CONF=Debug","clean"] } ] } ] }2.其实Sublime Text 3开发C/C++就只是缺少头文件跳转和gdb集成, 如果这个集成了, 未必不如vscode.
1.选择菜单->Preferences->Browse Packages...打开了配置目录,进入User,新建一个g++.sublime-build文件. 增加以下内容,cmd就是运行的命令,env设置编译后可执行文件的运行搜索目录, 比如有对c++的dll依赖,需要把E:/software/cygwin64/bin加入配置。当然也可以在系统环境变量path添加这个路径,但是会污染运行环境,不推荐这样做。-std=c++11是对C++11的支持, 当然这个也就是g++的编译参数,关于c++11我开了一个学院课程, 发布完后欢迎来学习C++11语言特性和标准库.variants是增加另外的任务,比如以下增加了运行任务, 在按ctrl+shift+b时会让你选择g++或者g++ - Run任务执行.
{ "cmd": ["E:/software/cygwin64/bin/g++.exe","-std=c++11", "${file}", "-o", "${file_path}/build/${file_base_name}"], "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$", "working_dir": "${file_path}", "selector": "source.c, source.c++", "env": { "PATH": "E:/software/cygwin64/bin" }, "variants": [ { "name": "Run", "cmd": ["${file_path}/build/${file_base_name}"] } ] }2.编辑好g++.sublime-build之后,我们需要在需要编译的.cpp文件目录新建一个build目录, 以便放编译输出. 如果需要放项目目录,那么可以把项目目录拖放到OPEN FILES窗口里。如果没有显示OPEN FILES窗口,可以通过菜单View->Side Bar->Show Open Files.
3.选择菜单Tools->Build System->g++, 会应用上我们设置好的编译配置. 首页打开test.cpp文件, 之后按ctrl+shift+b,选择弹出的g++,那么就会编译. 在以下的输出窗口会显示编译结果。
编译错误:
选择g++ - Run就会运行, 在以下的输出窗口会显示输出, 也可通过点击左下角的小窗口,选择Build Result重新显示输出窗口。
3.调试的只能进入gdb环境里,我在当前项目建了一个批处理:
cmd-gdb-debug.bat
cmd /K "set path=%path%;E:\software\cygwin64\bin; & gdb --version"之后建一个批处理gdb-init-command.bat来进行加载断点配置文件和运行指定目录下的exe.当然这个批处理要在cmd-gdb-debug.bat打开的命令行里运行才可以。调试只能通过原始的输入gdb命令调试了。关于gdb调试可以看命令行使用gdb调试程序简单应用.
gdb --command=breakpoint.txt --args dist/Debug/app.exe1.为了方便开发,我添加了一些自定义快捷键。在菜单Preferences->Key Bindings,在右边的User配置项里添加以下的配置,特别好用的就是ctrl+shift+r可以在项目里跳转到指定的函数.alt+/自动完成.ctrl+d删除行.ctrl+shift+f重新缩进,简单版的格式化代码。
[ { "keys": ["ctrl+d"], "command": "run_macro_file", "args": {"file": "Packages/Default/Delete Line.sublime-macro"} }, { "keys": ["ctrl+shift+r"], "command": "build", "args": {"variant": "Run"} }, { "keys": ["ctrl+shift+f"], "command": "reindent"}, { "keys": ["alt+/"], "command": "auto_complete" }, { "keys": ["ctrl+shift+r"], "command": "goto_symbol_in_project" } ]2.至于多个文件的项目编译,只能通过makefile来配置编译,关于makefile的配置,可以看 通用Makefile配置编译选项. 更完整的通过分析头文件是否更新来编译查看从netbeans里提取的通用构建C++项目的Makefile文件.
Build Systems