Использование ctags и vim с новыми сопоставлениями расширений файлов - PullRequest
2 голосов
/ 19 ноября 2010

Модули Drupal - это файлы php с расширениями .module. Чтобы сгенерировать теги для этих файлов, я запускаю ctags со следующими настройками langmap:

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

Эта команда создает файл tags с несколькими тегами, принадлежащими файлу .module. Но когда я открываю окно taglist с TlistToggle, ни один из тегов не отображается. Однако при открытии php-файла с расширением .php в окне taglist отображаются все теги в дереве навигации.

Нужно ли как-то указать плагину тегов Vim, что расширение .module относится к языку php?

Обновление: Я запускаю следующую команду диагностики, описанную в faq taglist:

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

Ответ - ничто. Но когда я запускаю эту команду с php-файлом, он отображает список тегов:

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

Ответы [ 2 ]

1 голос
/ 24 сентября 2011

И Vim, и Emacs будут читать «подсказки редактора» в файле: текст, обычно встроенный в комментарий, который содержит команды или настройки, которым должен следовать редактор при открытии файла. Вы можете использовать это, чтобы сообщить редактору, что делать с файлом, независимо от имени файла.

Для подсказок, которые будут работать как с Emacs, так и с Vim, поместите блок комментария в конец файла:

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

(Ваш вопрос не влечет за собой необходимости указывать кодировку символов, но это показывает, как вы можете объединить несколько настроек в одном блоке комментариев.)

0 голосов
/ 01 сентября 2017

Вы можете увидеть языковые отображения по умолчанию с 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 + ] для перехода к определениям классов / функций.

...