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-tags
、C-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
我喜欢在 Emacs 中使用标签,就像 Vim 那样。但是,我在设置它时遇到了一些问题## 设置: GNU Emacs GUI 版本 25.0.5.1 (x86_64-w64-mingw32) Compiled from Harroogan Emacs.
Projectile 和 Helm,使用来自 MELPAProjectile/Helm 的最新版本
Windows
的 Exuberant Ctags 二进制 58Windows 7 x64 位。
操作:
二进制文件 ctags.exe
在 PATH 中,当我在 Windows 中使用 ctags --help
.
我尝试了各种方法来创建 TAGS 文件,但没有任何结果。我似乎有结果的一件事是在包 projectile
的帮助下。但它给了我奇怪的结果。
当我在项目中时,当前正在打开缓冲区 index.php
。在该缓冲区内,我使用 projectile-regenate-tags
、C-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