2011-01-20 53 views
7

我知道Vim对标签有着复杂的支持,但我正努力让它们能够使用JavaScript和TCL。在Vim中使用标签

我在Ubuntu Lucid下使用Vim 7.2.330,标准Vim安装和标准Exuberant CTags安装。

我想保持我的标签在一个名为~/.vimtags/tags

文件我已经包含在我的vimrc文件set tags+=$HOME."/vimtags/tags"标签文件。

我从基本代码目录中运行以下命令:

ctags-exuberant -f ~/.vimtags/tags -h ".js" --totals=yes --tag-relative=yes --fields=+akst -R 

我也有我的.ctags文件中的下列 - 我看到一篇文章某处在线是说你要添加这些,使其兼容现代的JavaScript。

--langdef=js 
--langmap=js:.js 
--regex-js=/([A-Za-z0-9._$]+)[ \t]*[:=][ \t]*\{/\1/,object/ 
--regex-js=/([A-Za-z0-9._$()]+)[ \t]*[:=][ \t]*function[ \t]*\(/\1/,function/ 
--regex-js=/function[ \t]+([A-Za-z0-9._$]+)[ \t]*\(([^)])\)/\1/,function/ 
--regex-js=/([A-Za-z0-9._$]+)[ \t]*[:=][ \t]*\[/\1/,array/ 
--regex-js=/([^= ]+)[ \t]*=[ \t]*[^"]'[^']*/\1/,string/ 
--regex-js=/([^= ]+)[ \t]*=[ \t]*[^']"[^"]*/\1/,string/ 

当我加载Vim时,标签文件肯定会被加载。 A set tags?显示已包含标记文件。

但是,无论何时我在CTRL-]以上关键字,它总是说没有标签。

请你分享一下你如何使用JavaScript设置Vim标签,并展示如何使用标签系统?这似乎是Vim的一大特性,只要我能够实现它就行。

+0

你是如何解决这个问题的?看起来至少有几个人正在寻找答案(2个最喜欢的答案),但接受的答案似乎并不是解决您的问题的方法。 – intuited 2011-04-13 07:16:52

回答

3

但是,每当我CTRL-]关键字,它总是说没有标签。

标签不应该对关键字工作,他们对你的索引文件中定义(函数,变量,常量等)符号的工作。因此,如果您尝试使用Javascript关键字,则无法使用。如果您没有将JS库包含到您的标记文件中(例如使用ctags -a),它将无法用于库中的函数。

如果你想确定什么已被索引,你有什么访问<C-]>,你可以简单地打开你的“标签”文件,看看里面有什么。

:e ~/.vimtags/tags

您应该看到相对于所述标签的文件格式信息的头,后跟一个标签列表,其中包括所述标签名,后跟一个文件路径,行号,和字符识别的类型的标签。

如果它有一些内容,它应该适用于列出的符号。

关于你的ctag设置,在我看来,它看起来很好。

+0

通过关键字,我的意思是变量,函数等等。但我似乎仍然无法让它工作。我已经设法找到一个或两个变量的标签,但应该有更多的... – mrwooster 2011-01-20 16:06:23