sublime text 2扩展插件开发

时间:2013-3-9     作者:smarteng     分类: 开发工具


都说sublime text的自定义功能很强大,可以很方便的自己开发扩展,加上也想学习下python,于是就试着自己做了个sublime text的扩展。切入点还是样式压缩,毕竟之前已经做过两个类似的东西了,像air版的mergeCSSEmeditor宏的mergeCSS,对于正则还是有点了解的。

OK,找到了切入的点,再来就是了解基本的开发规则。先从搜索开始,比如 『sublime 开发 扩展 插件』然后从中找找你想要的文章,如果你像我一样是从零开始的,可以看看这篇《如何开发Sublime Text2插件》按文章里的说明,基本上可以跑起一个扩展。开始迫不急待的操作了一遍,试着修改类名为自己想要的名称,结果运行不了。这时就遇到了第一个问题,关于命名。

网上能找到答案的部分我就不多说什么了,这里分享下我没找到答案的部分,可能是写文章的人以为大家都懂的,所以没写上。

关于命名的规则,比如我想定义一个类为『merge css in line』,那么要写成『MergeCssInLineCommand』,即首字母大写,并以『Command』结束(这应该是sublime自身的规则,与python无关)。如果想要在设置里调用的话,那么要以『_』分隔,像设置一个快捷键,可以在『.sublime-keymap』文件里:

[{
    "keys": ["ctrl+shift+m"],
    "command": "merge_css_in_line"
}]

在扩展目录中常见的设置文件格式有三种,『.sublime-keymap』、『.sublime-menu』、『.sublime-settings』 
除了『.sublime-settings』是以『json』的方式之外,基本上都是以『列表(list)』(你可以理解为数组)的方式出现的,即是在一个中括号内『[]』,列表内容大多也是『json』。

上面完成了最基本的插件框架了,再来就是要学习下python,了解下基础的知识,可以看看《简明 Python 教程》,2.7版本的。网上搜下会发现还有个3.x版的,一开始我也以为最新的当然更好,不过3.x的语法不大一样的,网上大部分的教程都是2.x的,学习的难度太大了,再加上sublime text 2也是只支持2.x,现在就以2.x为主吧。(sublime text 3已经换成python3了,到时又得重写这些插件T-T。)

其它的部分,最好的学习方法就是看别人的插件是怎么写的,装上『Package Control』插件,然后下载别人的插件,看看别人的怎么写。

最后附上我写的扩展『modeCSS』写得不是很好,好在里面的注释写得比较多。

参考文章: