Javascript 在Vim中使用标记

Javascript 在Vim中使用标记,javascript,vim,ctags,Javascript,Vim,Ctags,我知道Vim对标记有复杂的支持,但我很难让它们与JavaScript和TCL一起工作 我在UbuntuLucid下使用Vim 7.2.330,这是一个标准的Vim安装和标准的Exuberant CTags安装 我希望将我的标签保存在名为~/.vimtags/tags 我已将标签文件包括在我的vimrc文件中设置标签+=$HOME./vimtags/tags“ 我已从基本代码目录运行以下命令: ctags-exuberant -f ~/.vimtags/tags -h ".js" --totals

我知道Vim对标记有复杂的支持,但我很难让它们与JavaScript和TCL一起工作

我在UbuntuLucid下使用Vim 7.2.330,这是一个标准的Vim安装和标准的Exuberant CTags安装

我希望将我的标签保存在名为
~/.vimtags/tags

我已将标签文件包括在我的vimrc文件中
设置标签+=$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时,标签文件肯定会被加载。
设置标记?
显示已包含标记文件

但是,每当我对关键字执行
CTRL-]
操作时,它总是说没有标记

请分享您如何使用JavaScript设置Vim标记,以及如何使用标记系统?这似乎是Vim的一大特点,只要我能让它工作就好了

但是,每当我在关键字上按CTRL-]键时,它总是说没有标记

标记不应用于关键字,它们用于索引文件中定义的符号(函数、变量、常量等)。因此,如果您尝试使用Javascript关键字,它将不起作用。如果您没有将JS库包含到标记文件中(例如使用ctags-a),那么它也无法处理库中的函数

如果您想确定哪些内容已被编入索引,以及您可以通过
访问哪些内容,只需打开“标记”文件,查看其中的内容

:e~/.vimtags/tags

您应该看到一个标题,其中包含与标记文件格式相关的信息,后面是标记列表,其中包括标记名,后面是文件路径、行号和标识标记类型的字符

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


关于您的ctag设置,我认为它看起来不错。

使用Mozilla的DoctorJS(以前称为jsctags),有一种非常简单的方法可以在Vim中获得JavaScript源代码浏览/标记列表


享受。:)

说到关键词,我指的是变量、函数。。。但我似乎还是无法让它发挥作用。我已经在一两个变量上找到了标签,但应该还有更多的…@Wooster先生:好吧,我怀疑这个关键字是在失去意义的情况下使用的。如果打开标记文件,您可以识别包含的标记类型和似乎丢失的标记类型。如果是路径问题(您的某些文件被忽略)或regexp问题(某些函数或声明被忽略),您可能会通过这种方式进行跟踪。@mrwooster:如果您最终在设置中成功地使标记工作,您能告诉我们出了什么问题吗?这可能会让下一个有同样问题的人受益。你是如何解决这个问题的?看起来至少有几个人在寻找答案(两个最喜欢的答案),但被接受的答案似乎并不能解决你的问题。