sublime text3 之 ctags
Win10 安装sublime3 + ctags,结果报错:Can't find XXX!
一、前奏
Q:为啥用sublime3?
A:因为轻啊。作为前端开发一枚,以前用webstrom也非常爽,就是太大了,启动慢,sublime够轻够快,关键模板颜色更好看。
Q:什么是ctags?
A:为了让点击函数、变量能跳转和返回,调试方便。
二、查问题
按照百度出来比较靠谱的文章,一步步装好了sublime3和ctags,并且rebuild ctags都成功了,生成了对应的tags文件,但是一点函数就报错:Can't find ’函数名‘!
1、难道没配置环境变量?
2、难道放置ctags文件夹目录有误(已经是全英文了),非得是2级目录?!
3、难道我下载的ctags版本不对吗?
4、难道是Win10兼容行问题?
5、难道是sublime3现在还是build版本,不稳定?
--------------------------> 都不是,害的我删了重装好几次
三、问题所在
前端工程调试的是js代码,但是ctags对js支持不好!
四、解决方法
需要在C:\Users\Administrator目录下建立 .ctags文件(这种文件创建要多打一个点哦),内容如下:
--langdef=js --langmap=js:.js --regex-js=/(,|(;|^)[ \t]*(var|let|([A-Za-z_$][A-Za-z0-9_$.]+\.)*))[ \t]*([A-Za-z0-9_$]+)[ \t]*=[ \t]*\{/\5/,object/ --regex-js=/(,|(;|^)[ \t]*(var|let|([A-Za-z_$][A-Za-z0-9_$.]+\.)*))[ \t]*([A-Za-z0-9_$]+)[ \t]*=[ \t]*function[ \t]*\(/\5/,function/ --regex-js=/(,|(;|^)[ \t]*(var|let|([A-Za-z_$][A-Za-z0-9_$.]+\.)*))[ \t]*([A-Za-z0-9_$]+)[ \t]*=[ \t]*\[/\5/,array/ --regex-js=/(,|(;|^)[ \t]*(var|let|([A-Za-z_$][A-Za-z0-9_$.]+\.)*))[ \t]*([A-Za-z0-9_$]+)[ \t]*=[ \t]*[^"]'[^']*/\5/,string/ --regex-js=/(,|(;|^)[ \t]*(var|let|([A-Za-z_$][A-Za-z0-9_$.]+\.)*))[ \t]*([A-Za-z0-9_$]+)[ \t]*=[ \t]*(true|false)/\5/,boolean/ --regex-js=/(,|(;|^)[ \t]*(var|let|([A-Za-z_$][A-Za-z0-9_$.]+\.)*))[ \t]*([A-Za-z0-9_$]+)[ \t]*=[ \t]*[0-9]+/\5/,number/ --regex-js=/(,|(;|^)[ \t]*(var|let|([A-Za-z_$][A-Za-z0-9_$.]+\.)*))[ \t]*([A-Za-z0-9_$]+)[ \t]*=[ \t]*.+([,;=]|$)/\5/,variable/ --regex-js=/(,|(;|^)[ \t]*(var|let|([A-Za-z_$][A-Za-z0-9_$.]+\.)*))[ \t]*([A-Za-z0-9_$]+)[ \t]*[ \t]*([,;]|$)/\5/,variable/ --regex-js=/function[ \t]+([A-Za-z0-9_$]+)[ \t]*\([^)]*\)/\1/,function/ --regex-js=/(,|^)[ \t]*([A-Za-z_$][A-Za-z0-9_$]+)[ \t]*:[ \t]*\{/\2/,object/ --regex-js=/(,|^)[ \t]*([A-Za-z_$][A-Za-z0-9_$]+)[ \t]*:[ \t]*function[ \t]*\(/\2/,function/ --regex-js=/(,|^)[ \t]*([A-Za-z_$][A-Za-z0-9_$]+)[ \t]*:[ \t]*\[/\2/,array/ --regex-js=/(,|^)[ \t]*([A-Za-z_$][A-Za-z0-9_$]+)[ \t]*:[ \t]*[^"]'[^']*/\2/,string/ --regex-js=/(,|^)[ \t]*([A-Za-z_$][A-Za-z0-9_$]+)[ \t]*:[ \t]*(true|false)/\2/,boolean/ --regex-js=/(,|^)[ \t]*([A-Za-z_$][A-Za-z0-9_$]+)[ \t]*:[ \t]*[0-9]+/\2/,number/ --regex-js=/(,|^)[ \t]*([A-Za-z_$][A-Za-z0-9_$]+)[ \t]*:[ \t]*[^=]+([,;]|$)/\2/,variable/
五、小结
有了ctags,sublime3暂时就感觉挺完美了。需要注意的是:
1、新增代码需要rebuild ctags才能点击生效
2、在setting里配置自己喜欢的点击跳转快捷方式,ctags默认的快捷键不敢恭维。
3、配置需要排除node_modules等不需要索引的文件夹,否则生成几个G的tags文件吓死你!