问题标签 [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 投票
4 回答
1331 浏览

erlang - 让 ctags 在 Erlang 代码的标签文件中包含模块限定符

我正在使用 Exuberant ctags 来索引 Erlang 文件。

“tags”文件包含函数,但它们没有模块限定符;所以我不能搜索“module:function”,只能搜索“function”,这可能会给出几个结果。

你知道让 ctags 在标签文件中包含模块限定符的方法吗?

谢谢。

0 投票
2 回答
13626 浏览

c++ - emacs、etags 和使用 emacs 作为 IDE

我常用的工具是在 Linux 系统上使用 g++ 的 Emacs 来实现我的研究算法。在过去的几年里,我以相当基本的方式使用 emacs。我打开 C 或 C++ 文件,使用我选择的语法突出显示方案对其进行编辑,然后从 emacs(或者可能从终端)中编译和执行其他操作,包括在 emacs 中使用 gdb 进行调试。我了解 etags 和 ctags,并且玩过 etags 和 emacs,但似乎没有找到使用这些工具的“最佳位置”。

我想知道,其他人如何配置 emacs 以使其与 etags 和其他工具很好地结合?需要对 emacs 进行哪些调整才能使其成为更好的 IDE?

0 投票
4 回答
3209 浏览

c++ - ctags does not parse stdio.h properly

I am trying to use ctags with VIM, and I am a newbie to both. In order to test the extent to which ctags could be useful I decided to put it through a very simple test, namely to parse the headers in /usr/include so that I could autocomplete some very basic functions.

When I run the command

then the output prints

so clearly ctags missed some very obvious functions like fopen, yet it included functions like fclose. Is there some option I am missing when I am parsing with ctags?

0 投票
1 回答
633 浏览

linux-kernel - 为外部内核模块运行 ctags(或从单独的相关项目中提取标签)

我正在构建一个“外部”模块(设备驱动程序),即它不在 Linux 内核源代码树中,而是在一个单独的不相关源代码树中。

我想使用 ctags 浏览通过头文件从内核中提取的变量/函数声明和定义。

例如假设我有:

并且我已经make tags为内核运行,那么如何对我的模块运行 ctags 以便它从不同目录树中有效的单独项目中获取标签,在这种情况下是 Linux 内核源代码?

0 投票
4 回答
5737 浏览

vim - 跳回到以前在 Vim 中打开的文件

在使用 Vim 时,我有时会想查看函数定义或结构定义,因此我将使用C-]它跳转到它。但是,我遇到了一些问题。首先,我不知道如何轻松地跳回去。看来我之前的文件已关闭,我现在在新文件中。有没有办法跳回来,或者保留一堆我可以弹回的打开文件或其他什么?

我注意到的另一件事是,当我对当前文件进行更改时,我需要保存它,因为就像刚才提到的那样,我当前的文件在下一个文件打开之前就被关闭了。

有时我想一次查看我当前的代码和我的标题。有没有办法在拆分中打开标签定义?

0 投票
5 回答
5688 浏览

linux - 设置复杂 CTAGS 搜索路径的提示

我希望能够在我的项目中的任意子目录中启动 vim 并让它搜索到项目根目录中的tags文件,然后在项目树之外的不相关目录中搜索。

例如,假设我有以下内容:

我想baz.cbar子目录中打开,让它搜索查找foo/tags,然后搜索some/arbitrary/path/tags是否在foo/tags.

现在我知道我可以做到:

完成第一个任务。显然是分号告诉 vim 搜索到根目录。但是,以下都不起作用:

第一个~/some/arbitrary/path/tags只找到符号,而第二个只在项目根目录的标签文件中找到符号。

有人知道怎么做吗?我在Linux上买的方式。

0 投票
6 回答
4021 浏览

javascript - 如何让 vim 的 taglist 插件显示对 javascript 有用的信息?

我最近放弃了鼠标驱动的、特定于平台的 GUI 编辑器,完全致力于 vim。到目前为止的体验非常棒,但是在谈到 Javascript 时我被困住了。

广受欢迎的 taglist 实用程序(使用 Exuberant Ctags)非常适合除 Javascript 之外的所有内容。由于语言过于自由的形式和结构,当我打开 taglist 时,它只能获取少数几个函数——只有那些以以下格式定义的函数:

但没有定义如下变量或函数对象:

所以我google了一下,找到了以下ctags的定义集,我把它放在我的~/.ctags文件中:

之后,从命令行运行 ctags 非常棒。它找到了我需要它找到的每一个函数和对象。

问题是 taglist.vim 插件没有看到这些新结果。当我在 vim 中打开我的 javascript 文件并点击 :TlistToggle 时,我得到了与以前完全相同的少数几个函数。我按 'u' 来更新列表,但没有任何效果。

挖掘 taglist.vim,我发现了这个:

...这意味着我们只查看 ctags 实用程序用于 javascript 的一种特定类型的输出。不幸的是,我对 taglist 或 vim 的了解还不够(还),无法发现我可以做出哪些改变来让所有那些美妙的 ctags 命令行结果显示在 vim 中。

帮助表示赞赏!

0 投票
2 回答
3158 浏览

vim - 在两个不同目录中为 .h 和 .c 文件生成标签时出现 ctags 问题

现在我有两个目录,所有头文件 *.h 都包含在目录 /inc 中,而所有 c 文件 *.c 都存储在 /src 目录中。

目录就像这样,(/project 是上一级目录):

我想使用ctrl+]在 example.c 等源文件中定位一个参数或一个函数的定义。如何生成这些标签?

我的方法是:

然后在那里生成一个标签文件,但是,当我打开一个示例文件并使用“Ctrl+]”时,它无法引导我找到它的定义。为什么???

我需要在/src下生成标签文件吗???

有什么帮助吗?非常感谢!

0 投票
1 回答
463 浏览

macos - mac单用户模式

我想在单用户模式下使用 mac。我想在该模式下使用 ctags 和 cscope。任何人都可以帮助我进行此所需的设置。谢谢你。我只知道如何进入单用户模式,所以请用简单易懂的方法告诉我。我的mac是10.6版(雪豹)

0 投票
1 回答
325 浏览

vim - gvim:有没有办法得到一个字符串数组?

我的 .vimrc 中有:

然后我对上面的字符串做了一堆操作:

我想用一个迭代字符串数组的 for 循环替换上面的代码。你如何在我的 .vimrc 中得到一个字符串数组?

用于遍历字符串数组的 for 循环语法是什么?