Sublime Text 3---C/C++环境配置

Sublime Text 3—C/C++环境配置

  C/C++的开发环境有很多,但结合编辑器的操作性、通用性以及外观,Sublime是非常不错的选择,相比于VS,它体积小巧、运行速度快,相比于Dev-C++、Clang,它可定制性更强、功能更多,相比于Vim、Emacs,它配置起来更简单,而且跨平台,现在介绍如何用Sublime打造C/C++开发环境。

  • Sublime Text 3—C/C++环境配置
    • 1.常用插件
      • (1) CTags
      • (2) SublimeGDB
      • (3) C++ Completions
      • (4) SublimeLinter-clang
    • 2. 新建C编译环境
    • 3. 注意事项
      • (1) 交互环境
        • a) 修改 C++.sublime-package
        • b) 新建C++编译环境
      • (2) 系统环境区别

  一个优秀的开发环境应该具备易于操作的编辑环境,全面的代码提示、检错功能,强大的调试功能,下面就从这几个方面介绍几款配置C/C++常用的插件,并说明几点注意事项。

1.常用插件

(1) CTags

  用来在函数定义位置跳转,除了安装CTags插件还需要安装ctags程序,并添加系统环境路径。使用时先在程序所在文件夹下建立ctag标签,该目录下会生成.tags.tags_sorted_by_files索引文件,然后在想要跳转的函数位置右键选择Nevigate to Definition即可完成跳转,可以用快捷键配置如下。

{
    "command": "navigate_to_definition",
    "keys": ["f3"]
},
{
    "command": "jump_back",
    "keys": ["f2"]
},

(2) SublimeGDB

  Sublime版的GDB,相当于Linux下gdb -tui指令,带基本的图形界面,下载后需要在setting中配置如下代码:(其中interpreter=mi指的是gdb的mechine interface指令,是供插件等软件调用的,而我们一般使用的gdb命令是commandline interface)

{
    "workingdir":"${folder:${file}}",
    "commandline":"g++ -g -std=c++11 ${file} -o ${file_base_name} && gdb --interpreter=mi --args ./${file_base_name}",
}

  使用时在console中选择Start Debugging,快捷键F9可以设置断点,调试时F10相当于gdb的next,F11相当于gdb的step,以预览源码、变量,同时可供用户输入gdb命令,十分方便,但好像并不能显示输出比较蛋疼,实在需要看输出结果的直接在cmd中运行gdb吧。
  

(3) C++ Completions

  Sublime自带了C代码的补全,但是对C++支持并不是很好,所以需要额外配置C++代码补全插件。

(4) SublimeLinter-clang

  SublimeLinter是代码检错的利器,SublimeLinter-clang算是其中一个子集,使用这个插件还需要安装SublimeLinter插件以及LLVM环境并将clang.exe的路径添加至系统环境变量。默认情况下警告和报错都是用outline,如果想更改样式可以在SublimeLinter Settings - User中修改,下面附上笔者的配置:

// SublimeLinter Settings - User
{
   "styles": 
    [
        {

            "priority": 1,
            "mark_style": "squiggly_underline",
            "scope": "region.yellowish markup.changed.sublime_linter markup.warning.sublime_linter",
            "icon": "dot",
            "types": [
                "warning"
            ]
        },
        {

            "priority": 1,
            "mark_style": "outline",
            "scope": "region.redish markup.deleted.sublime_linter markup.error.sublime_linter",
            "icon": "dot",
            "types": [
                "error"
            ]
        },
    ],

     "lint_mode" : "background"
}

2. 新建C编译环境

  Sublime自身没有编译C的环境,因此需要用户自己建立一个。方法是选择Tools->Build System->New Build System,输入以下代码(代码内容可以参考C++.sublime-package中的C++ Single File.sublime-build),然后为新建的编译环境取个名字如:C.sublime-build,新建的环境会放置在Packages->User中,而Sublime自带的配置环境在其安装路径下的Packages中,这一点要分清。需要编译C语言时,在Tools->Build System中选择刚建立的环境即可。

{
     "cmd": ["gcc", "${file}", "-std=c99", "-o", "${file_path}/${file_base_name}", "&", "start", "cmd", "/c", "${file_base_name} & echo. & pause"],  
     "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",  
     "working_dir": "${file_path}",  
     "selector": "source.c",  
     "shell": true,  
     "encoding":"cp936", 
}

3. 注意事项

(1) 交互环境

  Sublime自身并不带与用户交互的接口,比如现在我写了一个需要用户输入数值的程序,这在Sublime中是无法完成的,你会发现在底端窗口输入了正确格式的数值回车后程序毫无反应。配置方法是修改原来的C++.sublime-package内容或者新建一个编译环境,下面分别进行介绍。

a) 修改 C++.sublime-package

  在Sublime安装路径下的Packages文件中找到C++.sublime-package,将其改为.zip后缀后解压,将其中C++ Single File.sublime-build文件的内容改为以下内容后,还原成.sublime-package格式文件,这样选择Tools–>Build System–>C++ Single File后,就可以编译运行了,运行后会打开cmd供与用户交互。

{     
    "cmd":"g++ \"${file}\" -o \"${file_path}/${file_base_name}\"", 
    "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
    "working_dir": "${file_path}", 
    "encoding":"cp936",
    "selector": "source.c, source.c++",     
    "variants":     
    [          
        {              
            "name": "Run",             
            "cmd":  "cmd /c start ; cmd /k ; \"${file_path}/${file_base_name}\""                                         
        }        
    ] 
} 

  有一点要注意,正常的windows下目录层次是反斜杠,但是${变量名}的目录层次是斜杠,如${file_path}/${file_base_name}

b) 新建C++编译环境

  选择Tools–>Build System–>New Build System,然后输入和a)完全一致的代码,保存后在Tools–>Build System中选择刚刚自己新建的环境,即可编译运行。
  

(2) 系统环境区别

  Sublime是跨系统的,但不代表其针对任何系统的配置文件都是相同的,在Linux下的配置文件复制到windows下就不一定可行,就比如"shell_cmd""cmd"命令,同样的内容在Linux下可以直接打开shell与用户进行交互,但是windows下必须自行添加配置打开cmd窗口才能实现交互功能,配置时要分清楚。毕竟Sublime是定制化非常强的软件,运行出错时莫急莫慌,细心排查,也不要一棵树吊死,条条大路通罗马,任何编辑器都不是万能的,要懂得扬长避短。


注:Sublime插件众多且多处于动态改进过程中,再结合个人喜好,C/C++环境配置方式有很多种,具体的插件配置方法还需仔细阅读源文档。

你可能感兴趣的:(Sublime,Text,3)