如何在vim中跳转到Javascript函数定义?

时间:2012-03-14 15:45:10

标签: javascript vim plugins

我正在使用带有tagbar,jsctags和taglist-plus插件的vim。它们似乎都正常工作,但我无法跳转到函数/变量声明。我试过ctrl +]但它不起作用。是否可以设置vim以便您可以跳转到函数或变量声明?

2 个答案:

答案 0 :(得分:6)

不需要jsctags,我在〜/ .ctags中有以下内容正确处理JavaScript:

--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/

使用上面的简单ctags -R生成适当的标记文件以匹配JavaScript函数(以及变量和对象)定义。

答案 1 :(得分:3)

TagBar和TagList不会生成Vim用来跳转到定义的实际tags文件。

如果你想要这种能力跳跃,你必须从终端手动生成这个文件:

$ ctags -R .

如果您使用ctags或:

$ jsctags .

如果您使用jsctags或来自Vim本身。