问题标签 [exuberant-ctags]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
532 浏览

c++ - 使用 ctags 获取类继承

我试图让 ctags 输出 C++ 类层次结构,但它似乎与多重继承(有时甚至是单一继承)作斗争。

例如:

BaseFred 在哪里?

ctags V5.8 在两种(有效)情况下都错过了多重继承。

有没有更好的工具?

0 投票
1 回答
8244 浏览

c - 通常在 vim / Tag 组织中一次使用多个标签文件

(为 C 标签道歉,我这样做是为了语法高亮。这更像是一个 vim 问题。如果有人比我认为应该删除标签,请这样做)

假设我有这个目录结构:

文件1.c:

文件2.c:

子/file3.c:

文件4.c:

在这些文件中的任何一个文件中,都应该可以从其他文件跳转到它使用的函数的定义。例如,file1 应该能够跳转到 file2,file1 应该能够向下跳转到 file3,file3 应该能够向上跳转到 file4,这就是关键;所有的文件都应该能够跳转到 printf 的定义。为了做到这一点,我也不应该将 c 库实现的标签复制到 Test 目录中。

我想知道我该怎么做。我真的不热衷于单一标签文件。拥有一个 vim 范围的标签文件让我感到恐惧。每个目录的标签文件让我很恼火。每个项目的标签文件是可以忍受的。但我真正想要的是每个源文件都有一个标签文件,然后是一种指定 vim 应该引用哪些标签文件的方法。

理想情况下,我希望能够在任何东西上按 ctrl-] 并让 vim 根据范围内的内容跳转到正确的定义,就像 Visual Studio 一样。我开始怀疑这是无法做到的,如果是(通过插件的某种组合)它会非常慢,这真的很烦人,因为我完全在“Vim 可以做任何你新奇的 IDE 可以做的事情” “在那里流行了几个星期。是的,它绝对是我遇到过的最强大的文本编辑器,但作为一个 IDE,它非常粗糙。当我使用“转到定义”命令时,我希望得到正确的定义,无论它是局部变量、不同的文件、标准库等。到目前为止,Vim 给了我一些有趣的结果,比如从一个java文件转ac文件。而且您必须使用单独的命令来跳转到局部变量的定义...什么?(如果这背后有原因,我很想知道)

我知道set tags=./tags在我的 .vimrc 中工作,这就是我迄今为止所做的。但是,如果我处理将来自不同项目的单独程序集和源文件链接在一起的大型项目,这将无法扩展。

(为了公平起见,Visual Studio 也不允许您跳过程序集来查找定义,但它至少可以提供一个头文件,您可以从中“加载程序集”并导航到实际的您正在寻找的源代码)

0 投票
1 回答
86 浏览

c - Ctags 作为创建标签文件的库

我需要使用 Ctags 来生成标签文件,但我更喜欢它作为一个库而不是可执行文件。是否有任何可用的软件包作为库?我有一个带有可执行文件的编译版本,但不想在我的应用程序中运行新进程。任何建议或指针表示赞赏

0 投票
3 回答
12256 浏览

vim - vim 中的标签导航

使用 cscope 集成的 Vim,我可以使用 ctrl-T 导航回来并使用 :tags 查看当前标签堆栈位置。但是我如何在堆栈中前进?我可以从手册页中找到的唯一内容是转到函数定义(如 ctrl-])

0 投票
3 回答
2493 浏览

php - 如何配置 ctags 以索引 PHP 命名空间及其别名?

当使用 PHP 命名空间时,我处理的代码使用了大量的命名空间别名,例如

是否可以配置 Exuberant Ctags 来索引这些命名空间别名的使用,以便我可以从使用别名的行(上面的实例化)直接跳转到真正的类?如果这不可能,那么可以实现的最佳折衷方案是什么?

我在某处看到了一个尚未集成的 ctags 补丁,它使用 PHP 标记器来支持 PHP,而不是当前基于正则表达式的实现;如果可能的话,我想继续使用股票 ctags,而不是自己修补和编译一个版本。

0 投票
1 回答
3767 浏览

c++ - 让 vim 的 YouCompleteMe 插件识别 exuberant-ctags

我已经尝试了几个小时来让 vim 的 YouCompleteMe 插件识别我的旺盛 ctags。YouCompleteMe 中的其他所有内容似乎都在工作,例如从标题自动完成功能等。我真的希望它默认为标记文件。下面我列出了我.vimrc的测试标签文件,它位于~/.vim/tags/

这是我的testtags文件

testtags文件是使用命令生成的ctags -R --sort=1 --fields=+l --c++-kinds=+p -f testtags test.h

和我的.vimrc文件在这里

输入 vim 命令的输出:echo tagfiles()['/home/jodag/.vim/tags/testtags'],命令:set filetype?filetype=cpp. 这意味着 YCM 正在查找标记文件并识别出我当前正在编辑一个 c++ 源文件,但是myfunc当它按 Ctrl+Space 时它不会显示完成。任何帮助弄清楚为什么会发生这种情况将不胜感激!

0 投票
1 回答
65 浏览

javascript - javascript的引号打破ctags

如果函数定义在正则表达式中带有引号的行之后,则 ctags 无法标记函数。

然后输出标签文件什么都没有,也没有标记aa和bb。

实际上,在 2008 年有一个针对此问题的错误提交。它说这将在下一个版本中修复。但看起来它仍然存在于我的 ctags 中,即:

对此有任何想法吗?

0 投票
1 回答
359 浏览

regex - ctags/vim - 处理标识符列表中带括号的表达式时遇到问题

我正在使用 vim 和 ctags (exuberant 5.7) 来导航我的源代码。然而,一些函数和变量添加了一些英特尔 C 扩展关键字,即:

问题在于,由于 __declspec,ctags 忽略了对其进行索引,因此函数 calculate_gamma 不会被标记。

使用标识符列表选项 -I 使用 ctags 修复此类事情。但是,如果您的表达式中有括号,则此选项会讨厌您:

我尝试在__declspec 周围加上引号,转义字符'\',以及ansi-C 引用$'',这些都阻止了bash 抱怨,但是ctags 仍然没有标记函数calculate_gamma。如果没有括号,这将起作用。

我做错了什么还是有另一种方法可以从 ctags 中获得我想要的东西?干杯。

0 投票
1 回答
569 浏览

ubuntu - .ctags 文件位于 Ubuntu 中的什么位置?

.ctags 文件位于 Ubuntu 中的什么位置?我安装了 exuberant-ctags 但找不到它。

我在谷歌上没有找到任何关于这个的信息。

提前致谢

0 投票
1 回答
498 浏览

php - 在 vim 中为 taglist 添加 HTML 支持(文件有 PHP 和 HTML 代码)

我有一个文件,其中包含 PHP 和 HTML 混合代码。默认情况下,Vim 将此扩展名识别为php. 文件扩展名为 phtml。

我想知道是否可以为这种文件添加对 taglist(这是一个 Vim 插件)的支持。我也安装了 exuberant-ctags。

我在谷歌搜索,找到了这个,但它不起作用。看来代码是错误的;而不是看到左侧的标签,我可以看到文件的名称。