更好的用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几个小技巧(批量替换,列编辑) (阅读:35894)
- 简明Vim练级攻略 (阅读:20698)
- Vim下的代码自动补全和代码跳转阅读 (阅读:14335)
- 为什么要用 Emacs/Vim,而不是任何其他编辑器 (阅读:12128)
- 在vim(gvim)中运行终端(对,你没有看错,我也没有写反) (阅读:9334)
- vim入门,进阶与折腾 (阅读:9149)
- 让vim在终端下的配色亮起来! (阅读:8559)
- 最近总结的一些技巧(vim,python,svn,fiddler等) (阅读:7029)
- vim的复制粘贴小结 (阅读:6465)
- Vim 中截取部分内容保存到其他文件 (阅读:6318)
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:kejun 来源: Kejun's Blog
- 标签: ctags taglist vim
- 发布时间:2011-05-17 09:08:49
- [67] Go Reflect 性能
- [67] Oracle MTS模式下 进程地址与会话信
- [67] 如何拿下简短的域名
- [61] IOS安全–浅谈关于IOS加固的几种方法
- [60] 图书馆的世界纪录
- [59] 【社会化设计】自我(self)部分――欢迎区
- [58] android 开发入门
- [56] 视觉调整-设计师 vs. 逻辑
- [49] 给自己的字体课(一)——英文字体基础
- [47] 界面设计速成