更好的用vim浏览Javascript代码
vim默认没有一般IDE的outline视图,浏览长篇Javascript源文件很麻烦,taglist插件正是弥补这点不足。它可以将所有方法和变量分级罗列出来,一目了然。taglist是依赖强大的ctags实现的。ctags支持41种编程语言,其中包括Javascript,但对Javascript支持较随意。
ctags + taglist的安装过程:
1. 下载exuberant ctags
2. 安装exuberant ctags:
> ./configure
> make
> sudo make install
3. 安装taglist
4. 让taglist针对javascript显示更多信息。新建$HOME/.ctags文件,添加:
感谢@KDepp补充: windows用户要注意,放在$HOME/ctags.cnf中。
--regex-JavaScript=/([A-Za-z0-9._$]+)[ \t]*[:=][ \t]*new[ \t]+Object\(/\1/o,object/ --regex-JavaScript=/([A-Za-z0-9._$]+)[ \t]*[:=][ \t]*\{/\1/o,object/ --regex-JavaScript=/([A-Za-z0-9._$()]+)[ \t]*[:=][ \t]*function[ \t]*\(/\1/f,function/ --regex-JavaScript=/function[ \t]+([A-Za-z0-9._$]+)[ \t]*\([^\]\)]*\)/\1/f,function/ --regex-JavaScript=/([A-Za-z0-9._$]+)[ \t]*[:=][ \t]*new[ \t]+Array\(/\1/a,array/ --regex-JavaScript=/([A-Za-z0-9._$]+)[ \t]*[:=][ \t]*\[/\1/a,array/ --regex-JavaScript=/([^= ]+)[ \t]*=[ \t]*[^""]'[^'']*/\1/s,string/ --regex-JavaScript=/([^= ]+)[ \t]*=[ \t]*[^'']"[^""]*/\1/s,string/
5. 在.vimrc添加:
let Tlist_JS_Settings = 'javascript;s:string;a:array;o:object;f:function' let Tlist_Ctags_Cmd = '/usr/local/bin/ctags'
6. 打开一个js,执行:Tlist。
遇到问题可参考下面链接:
http://vim-taglist.sourceforge.net/faq.html
http://easwy.com/blog/archives/exuberant-ctags-chinese-manual/
jsctags是专门针对javascript做的,目的就是提供比ctags更好的索引结果。它完全是用javascript写的,基于node.js和narcissus。现在这个项目已改名为DoctorJS。
下面这两个插件都是利用DoctorJS对javascript文件做处理的:
1. Taglist-Plus
2. Tagbar。另一篇介绍Tagbar的文章:http://is.gd/tKfuTe
在编辑.html文件里的javascript,taglist找不到任何标签。只好先:set ft=php,再用Tagbar。
建议继续学习:
- vim几个小技巧(批量替换,列编辑) (阅读:36151)
- 简明Vim练级攻略 (阅读:20950)
- Vim下的代码自动补全和代码跳转阅读 (阅读:14510)
- 为什么要用 Emacs/Vim,而不是任何其他编辑器 (阅读:12252)
- 在vim(gvim)中运行终端(对,你没有看错,我也没有写反) (阅读:9424)
- vim入门,进阶与折腾 (阅读:9383)
- 让vim在终端下的配色亮起来! (阅读:8637)
- 最近总结的一些技巧(vim,python,svn,fiddler等) (阅读:7190)
- vim的复制粘贴小结 (阅读:6607)
- Vim 中截取部分内容保存到其他文件 (阅读:6396)
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:kejun 来源: Kejun's Blog
- 标签: ctags taglist vim
- 发布时间:2011-05-17 09:08:49
-
[47] memory prefetch浅析
-
[46] 《web前端最佳实践》—高维护性css
-
[45] 转载:cassandra读写性能原理分析
-
[37] 程序员技术练级攻略
-
[35] 深入浅出cassandra 4 数据一致性问
-
[34] 不是书评 :《我是一只IT小小鸟》
-
[33] 图书馆的世界纪录
-
[33] javascript插入样式
-
[32] 获取Dom元素的X/Y坐标
-
[31] MySQL半同步存在的问题