Использование тегов в Vim - PullRequest
7 голосов
/ 20 января 2011

Я знаю, что Vim имеет сложную поддержку тегов, но я изо всех сил пытаюсь заставить их работать с JavaScript и TCL.

Я использую Vim 7.2.330 под Ubuntu Lucid, стандартная установка Vim и стандартная установка Exuberant CTags.

Я хочу сохранить свои теги в файле с именем ~/.vimtags/tags

Я включил файл тегов в мой файл vimrc set tags+=$HOME."/vimtags/tags".

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

ctags-exuberant -f ~/.vimtags/tags -h ".js" --totals=yes --tag-relative=yes --fields=+akst -R

У меня также есть следующее в моем файле .ctags - где-то в Интернете я видел статью, в которой говорилось, что вы должны добавить ее, чтобы она была совместима с современным JavaScript.

--langdef=js
--langmap=js:.js
--regex-js=/([A-Za-z0-9._$]+)[ \t]*[:=][ \t]*\{/\1/,object/
--regex-js=/([A-Za-z0-9._$()]+)[ \t]*[:=][ \t]*function[ \t]*\(/\1/,function/
--regex-js=/function[ \t]+([A-Za-z0-9._$]+)[ \t]*\(([^)])\)/\1/,function/
--regex-js=/([A-Za-z0-9._$]+)[ \t]*[:=][ \t]*\[/\1/,array/
--regex-js=/([^= ]+)[ \t]*=[ \t]*[^"]'[^']*/\1/,string/
--regex-js=/([^= ]+)[ \t]*=[ \t]*[^']"[^"]*/\1/,string/

Когда я загружаю Vim, файл тегов определенно загружается. set tags? показывает, что файл тега был включен.

Однако, когда я CTRL-] указываю на ключевое слово, он всегда говорит, что тегов нет.

Не могли бы вы рассказать, как настроить теги Vim с помощью JavaScript, а также показать, как вы используете систему тегов? Кажется, это отличная особенность Vim, если бы я только мог заставить его работать.

Ответы [ 2 ]

3 голосов
/ 05 мая 2011

Существует очень аккуратный и простой способ получить просмотр исходного кода JavaScript / теги-листинг в Vim, используя Mozilla DoctorJS (ранее известный как jsctags ).

См. Мой ответ на этот вопрос для получения дополнительной информации .

Наслаждайтесь. :)

3 голосов
/ 20 января 2011

Однако всякий раз, когда я нажимаю клавишу CTRL-] над ключевым словом, всегда говорится, что тегов нет.

теги не должны работать на ключевых слов ,они работают с символами, которые вы определили (функции, переменные, константы и т. д.) в индексированных файлах.Так что, если вы пытаетесь использовать ключевое слово Javascript, оно не будет работать.Он также не будет работать с функцией из библиотеки, если вы не включили библиотеку JS в файл тегов (например, с помощью ctags -a).

Если вы хотите быть уверены, что было проиндексированои к тому, что у вас есть доступ с помощью <C-]>, вы можете просто открыть свой файл «тега» и посмотреть, что там.

:e ~/.vimtags/tags

Вы должны увидеть заголовок с информацией относительнок формату файла тега, за которым следует список тегов, который включает имя тега, за которым следуют путь к файлу, номер строки и символ, обозначающий тип тега.

Если у него есть какое-то содержимое, он долженработать для перечисленных символов.

Что касается вашей настройки ctag, то, на мой взгляд, она выглядит хорошо.

...