Ctags 不适用于 .inc 文件

Ctags not working with .inc-files

我喜欢在 Emacs 中使用标签,就像 Vim 那样。但是,我在设置它时遇到了一些问题## 设置: GNU Emacs GUI 版本 25.0.5.1 (x86_64-w64-mingw32) Compiled from Harroogan Emacs.

Projectile 和 Helm,使用来自 MELPAProjectile/Helm 的最新版本

Windows

的 Exuberant Ctags 二进制 58

Windows 7 x64 位。

操作:

二进制文件 ctags.exe 在 PATH 中,当我在 Windows 中使用 ctags --help.

从命令行调用它时响应

我尝试了各种方法来创建 TAGS 文件,但没有任何结果。我似乎有结果的一件事是在包 projectile 的帮助下。但它给了我奇怪的结果。

当我在项目中时,当前正在打开缓冲区 index.php。在该缓冲区内,我使用 projectile-regenate-tagsC-c p R.

重新生成标签文件

消息缓冲区给我以下信息:

Starting a new list of tags tables
Making tags-file-name local to Dev/digiloket3/TAGS while let-bound!

我看到正在项目根目录中创建文件 TAGS。

目录根结构是这样的:

index.php
.projectile
|- INCLUDE
    |- AJAX
    |- SCRIPTS
    |- PHP

问题:

然后我用find-tag访问标签列表(g C-])。当我注意到我没有获得项目中定义的所有变量和 class/functions 时。 当我调用 helm-etags-select 时,我看到标签旁边有 directory/file。令我困惑的是,只有 functions/classes 和目录 AJAX 中文件的变量在标签列表中可见,而不是目录 [=20] 中文件的 variables/classes/functions =].

然后我在 ctags -R 上的正确目录的命令提示符中手动创建 TAGS 文件。

没有帮助。

文件夹 PHP 中的所有文件都称为 ****.inc。

当我将其中一个文件重命名为 ****.php 时,它们就会出现在我的 ctags table.

所以这里真正的问题是我如何告诉 projectile/ctags 将 .inc 文件识别为 PHP 文件,或将其编入索引

但我也对其他事情持开放态度,即在 Windows 平台上创建一个 TAGS table,并在命令行上提供 ctags

有什么建议吗?

man ctags 对于初学者(如果你可以在 Windows 中这样做?无论如何都有 documentation 可用。)

为一种语言分配文件扩展名是通过 --langmap 完成的。 运行 以下命令可查看该参数的工作原理:
ctags --langmap=php:+.inc.foo.bar --list-maps=php

所以在你的情况下,你可能会使用类似这样的东西来生成你的 TAGS 文件:
ctags -e -R --langmap=php:+.inc

切线地,还要注意 运行 ctags --list-kinds=php 时列出的选项。然后您可以控制将使用哪些:ctags --php-kinds=-v-j --list-kinds=php