Python 几种vim标签插件之间的差异
实际上我有两个问题 首先,据我所知,有两种标记工具:Python 几种vim标签插件之间的差异,python,ruby,vim,ctags,gnu-global,Python,Ruby,Vim,Ctags,Gnu Global,实际上我有两个问题 首先,据我所知,有两种标记工具: Ctags GNU全球又名gtags 如果我的日常工作集中在Ruby、Rails、JavaScript和Python上,我想知道哪一个更合适。即,动态语言。 我在谷歌上搜索了一下,似乎gtags在某种程度上等同于ctags+cscope 其次,对于CTAG,有一些vim插件: :它可以通过命令:TagsGenerate在Vim中生成标记文件 :一个著名的插件。它似乎可以动态生成标签 :看起来像vim标签,但有更多功能 我在想 这些插件之间有重
:TagsGenerate
在Vim中生成标记文件class Obj
def m1
puts "hello"
end
end
然后,当我键入obj=obj.new时,我希望自动完成显示m1
;对象。
。
据我所知,我可以使用ctags的文件,但我无法设置它,即使我遵循指示老实说,我真的不知道CTAG能做什么或能提供什么。因此,请随意建议更多有用的功能。谢谢 您现在可以忘记GNU GLOBAL,因为——上次我检查时——它根本不支持JavaScript。我不了解Ruby和Python,但对您来说测试它应该不会太难 Ctags与JavaScript(以及其他)一起工作,但它不喜欢“现代”的JavaScript编写方式(内联回调、滥用的文本对象、自调用函数……)。您可以通过向
~/.ctags
文件中添加以下行来帮助它:
--langmap=javascript:.js
--regex-javascript=/([A-Za-z0-9._$()]+)[ \t]*[:=][ \t]*function[ \t]*\(/\1/F,function,functions/
--regex-javascript=/function[ \t]*([A-Za-z0-9._$()]+)[ \t]*\(/\1/F,function,functions/
--regex-javascript=/([A-Za-z0-9._$]+)[ \t]*=[ \t]*\{/\1/o,object,objects/
--regex-javascript=/^[ \t]*([A-Za-z0-9._$]+)[ \t]*[:][ \t]*[^\{]/\1/p,property,properties/
--regex-javascript=/^[ \t]+var[ \t]*([A-Za-z0-9._$]+)[ \t]*=[ \t]*[\d"'\[]/\1/v,variable,variables/
这些对我来说很有用,但我的JavaScript确实有点“老派”。注意,CTAG仅限于“定义/声明”
CTAG还有一些特定于语言的变体,通常会给出更合理的结果,如或
另一方面,Cscope可以“使用”并适用于您的所有语言。设置它比设置ctags广告要复杂一点,它的使用也有点复杂,但考虑到它的特性,这是非常合乎逻辑的
cscope的一个“问题”是,与CTAG相比,围绕它编写的插件并不多。这是一个值得考虑的限制
至于你列出的插件
标记
文件请参见
:help ctags
和:help cscope
,了解他们可以做什么。谢谢提醒。我刚刚更新了所需的功能tagbar
不生成或使用tags
文件,所以它不能让我跳转到声明或类似的东西?Cscope在Ruby上本来就不太好用,但是我写了一个gem(),如果你想这样做的话,它可以做得更好。请参阅我的编辑。