本文发自 http://www.binss.me/blog/add-some-plugins-to-sublime-text-and-share-some-shortcuts/,转载请注明出处。

此前已经介绍过个人在Sublime Text下的常用插件:

http://www.binss.me/blog/my-sublime-text-3-plugin/

在这套配置中,主要以支持python和前端工作为主。而最近由于工作需要转成了C++开发,在这种情况下,我依然选择使用sublime作为我的“IDE”的原因是:

  1. 用了三年Sublime,习惯了

  2. 工作中,编码环境和编译环境是分离的,也就是说,那些重度IDE强大的编译和调试功能并没有什么卵用

  3. 由于本质上是文本编辑器,所以最大的优点就是快

  4. 支持自定义插件,此前介绍过带动态参数编译和写博客插件,最近又写了个自动插入header的插件(装x利器),完善后会放上github

俗话说,工欲善其事必先利其器,既然选择了Sublime Text,相关的插件啊设置啊都有必要根据新环境重新配一遍。

经过一个月的实践,新增了以下三个插件:

CTags

https://github.com/SublimeText/CTags

IDE的定义跳转一直是很让我眼红的功能——直到我遇到了CTags(神马?你说SublimeCodeIntel?它什么都支持就是不支持c和c++!!)。

使用时,首先要为目录建立索引,命令是rebuild_tags,我将快捷键设置为ctrl+t:

{ "keys": ["ctrl+t"], "command": "rebuild_tags"}

建立索引后,就可以用ctrl+shift+鼠标左键进行转到定义,ctrl+shift+鼠标右键返回定义。为了方便,我重新定义了组合键为:

command:
{
    "button": "button1",
    "count": 1,
    "press_command": "drag_select",
    "modifiers": ["super"],
    "command": "navigate_to_definition"
},
{
    "button": "button2",
    "count": 1,
    "modifiers": ["super"],
    "command": "jump_prev"
}

关于Ctags的安装有一个坑,如果直接用brew安装ctags,插件在rebuild tags的时候会出错:

解决方法是在CTags.sublime-settings中加入:

"command": "/usr/local/bin/ctags"

ConvertToUTF8

https://github.com/seanliang/ConvertToUTF8

项目中,很多文件的编码是gb2312,而sublime只支持utf8,所以打开的时候会乱码。通过这个插件,可以基本上解决乱码的问题。

在设置里面有一项convert_on_save,如果设为false,则保存的时候无论如何都会将文件转为utf8。而如果设为true,则保存为其原来的编码。

因此在需要时将其设置为true,然后通过File-Set File Encoding To来将utf8编码的文件保存为别的编码......因为某些编译工具只支持gbk。

SublimeLinter

添加子插件SublimeLinter-cppcheck

用于支持c++的语法检查。

然后还有些使用心得

  1. 如何进行全局查找?

    super+shift+f

    可以选择查找的范围。默认为当前文件所属的文件夹。

    另外,在设置里面加入:

    "find_selected_text": true

    可以将选中内容后自动复制到查找框中。

    查找(秒开)会新建一个tag现实查找结果,点击结果跳转到该文件该行。

  2. 默认设置下,支持emac的一些操作:

    Ctrl+a/e 移动到行首/行尾

    Ctrl+f/b 单字符的左右移动

    Ctrl+h/d 向前删除/向后删除

    Ctrl+p/n 移动至上一行/下一行

    对于HHKB,可以用尾指按住Ctrl然后戳戳戳。

  3. 一些妙不可言的快捷键:

    command+p / command + t 跳转文件

    command+r 跳转函数

    command+g 跳转行

    command+shift+enter 光标前插入一行

    command+/ 行注释

    command+option+/ 块注释

    command+option+f replace

    command+ctrl+上 和上一行交换

    command+ctrl+下 和上一行交换

    command+shift+d 复制粘帖当前选中(默认为当前行)

    ctrl+k 删除从光标开始到行末的内容

    ctrl+shift+k 删除整行