2

Drupal 模块是带有.module文件扩展名的 php 文件。为了在这些文件上生成标签,我使用以下langmap设置运行 ctags:

ctags -R --langmap=php:+.module .

此命令生成tags具有多个属于文件的标签的.module文件。但是当我打开标签列表窗口时,TlistToggle没有显示任何标签。但是,当打开带有.php扩展名的 php 文件时,taglist 窗口会在导航树中显示所有标签。

我是否需要以某种方式向 Vim 的 taglist 插件指定.module文件扩展名属于 php 语言?

更新:我运行taglist 的 faq 中描述的以下诊断命令:

ctags  -f - --format=2 --excmd=pattern --fields=nks test_module.module

回复什么都没有。但是当我用一个 php 文件运行这个命令时,它会显示一个标签列表:

ctags  -f - --format=2 --excmd=pattern --fields=nks test_module.php
4

2 回答 2

1

Vim 和 Emacs 都会读取文件中的“编辑器提示”:文本,通常嵌入在注释中,包含编辑器在打开文件时要遵循的命令或设置。无论文件名如何,您都可以使用它来告诉编辑器如何处理文件。

对于适用于 Emacs 和 Vim 的提示,请在文件末尾放置一个注释块:

# Local variables:
# coding: utf-8
# mode: php
# End:
# vim: fileencoding=utf-8 filetype=php :

(您的问题不需要指定字符编码,但这显示了如何在一个注释块中组合多个设置。)

于 2011-09-24T13:06:27.920 回答
-1

您可以看到默认的语言映射ctags --verbose

默认情况下可能不包含 Drupal 扩展。对于 PHP,您可能会看到类似这样的内容:PHP: .php .php3 .phtml

有时长文件会产生错误,所以我通常会排除那些倾向于缩小输出的扩展。Drupal 也经常使用“.inc”。该命令应该可以工作:

ctags -R --langmap=PHP:+.inc.module --exclude='*.js' --exclude='*.html' --exclude='*.css' *

在 ~/.vimrc 中确保添加::set tags=/path/to/your/tags

然后你应该能够使用Ctrl+]跳转到类/函数定义。

于 2017-09-01T19:36:31.540 回答