ctags для latex

и другие vi-подобные редакторы

Модератор: /dev/random

Ответить
Kostafey
Сообщения: 19
ОС: OpenSuSE/WinXP

ctags для latex

Сообщение Kostafey »

Подскажите как настроить ctags и taglist для *.tex (LaTeX) файлов.
тут http://vim.wikia.com/wiki/Use_Taglist_with_LaTeX_files
дано описание как это делается, но у меня создание tag-файла
происходит с ошибками:

Код: Выделить всё

ctags.exe: Warning: regex support not available; required for --langdef option
ctags.exe: Warning: Unknown language "tex:.tex" in "langmap" option
ctags.exe: Warning: regex support not available; required for --regex-tex option
ctags.exe: Warning: regex support not available; required for --regex-tex option
ctags.exe: Warning: regex support not available; required for --regex-tex option
ctags.exe: Warning: regex support not available; required for --regex-tex option
ctags.exe: Warning: regex support not available; required for --regex-tex option
ctags.exe: Warning: regex support not available; required for --regex-tex option


Тут http://www.unb.ca/fredericton/science/chem/ajit/vim.htm
предлагается ctags со встроенной поддержкой LaTeX, но на деле он тоже оказался нерабочим.

Тут http://mysite.verizon.net/astronaut/vim/ находится hdrtag, который генерирует с виду правильный tags - файл, но
taglist - палагин с ним не работает.
Спасибо сказали:
Аватара пользователя
Luinnar
Сообщения: 246
ОС: Solaris, Debian, Ubuntu

Re: ctags для latex

Сообщение Luinnar »

Kostafey писал(а):
11.12.2008 00:45
Подскажите как настроить ctags и taglist для *.tex (LaTeX) файлов.
тут http://vim.wikia.com/wiki/Use_Taglist_with_LaTeX_files
дано описание как это делается, но у меня создание tag-файла
происходит с ошибками:

Код: Выделить всё

ctags.exe: Warning: regex support not available; required for --langdef option
ctags.exe: Warning: Unknown language "tex:.tex" in "langmap" option
ctags.exe: Warning: regex support not available; required for --regex-tex option
ctags.exe: Warning: regex support not available; required for --regex-tex option
ctags.exe: Warning: regex support not available; required for --regex-tex option
ctags.exe: Warning: regex support not available; required for --regex-tex option
ctags.exe: Warning: regex support not available; required for --regex-tex option
ctags.exe: Warning: regex support not available; required for --regex-tex option


Только что попробовал описанный по первой ссылке метод, всё получилось сходу:
1. Создал файл ~/.ctags с содержимым:

Код: Выделить всё

--langdef=tex
--langmap=tex:.tex
--regex-tex=/\\subsubsection[ \t]*\*?\{[ \t]*([^}]*)\}/- \1/s,subsubsection/
--regex-tex=/\\subsection[ \t]*\*?\{[ \t]*([^}]*)\}/+\1/s,subsection/
--regex-tex=/\\section[ \t]*\*?\{[ \t]*([^}]*)\}/\1/s,section/
--regex-tex=/\\chapter[ \t]*\*?\{[ \t]*([^}]*)\}/\1/c,chapter/
--regex-tex=/\\label[ \t]*\*?\{[ \t]*([^}]*)\}/\1/l,label/
--regex-tex=/\\ref[ \t]*\*?\{[ \t]*([^}]*)\}/\1/r,ref/


2. Запустил в папке с tex-документом команду:

Код: Выделить всё

ctags -l tex *.tex

Сгенерился файл tags в текущей папке.

3. В ~/.vimrc у меня прописано искать тэги в текущей папке и в папке vim'а:

Код: Выделить всё

set tags=tags\ ~/.vim/tags


4. Собственно открываю gvim'ом какой-нибудь tex файл, находясь в той самой папке с tex-доками и только что полученным файлом tags, и тэги видны, vim успешно по ним переходит командами tag (ta), tselect (ts), tnext (tn), tprev (tp), естественно, сочетания Ctrl+], Ctrl+t также работают.

Единственный баг: при попытке перейти на тэг по сочетанию клавиш, vim не полностью определяет слово тэга, если в нём есть подчеркивание, пытается перейти по слову до подчеркивания. Вместо equation_0 пытается найти просто equation. Это видно уже синтаксис tex-файлов нужно править.

PS: спасибо за наводку, теперь можно будет бродить по tex файлам не выходя из vim'a :)
Спасибо сказали:
Аватара пользователя
Luinnar
Сообщения: 246
ОС: Solaris, Debian, Ubuntu

Re: ctags для latex

Сообщение Luinnar »

Kostafey писал(а):
11.12.2008 00:45
Подскажите как настроить ctags и taglist для *.tex (LaTeX) файлов.
тут http://vim.wikia.com/wiki/Use_Taglist_with_LaTeX_files
дано описание как это делается, но у меня создание tag-файла
происходит с ошибками:

Начал использовать ctags для tex'а и добавил поддержку тэгов cite и bibitem, вот улучшенный .ctags:

Код: Выделить всё

--langdef=tex
--langmap=tex:.tex
--regex-tex=/\\subsubsection[ \t]*\*?\{[ \t]*([^}]+)\}/- \1/s,subsubsection/
--regex-tex=/\\subsection[ \t]*\*?\{[ \t]*([^}]+)\}/+\1/s,subsection/
--regex-tex=/\\section[ \t]*\*?\{[ \t]*([^}]+)\}/\1/s,section/
--regex-tex=/\\chapter[ \t]*\*?\{[ \t]*([^}]+)\}/\1/c,chapter/
--regex-tex=/\\label[ \t]*\*?\{[ \t]*([^}]+)\}/\1/l,label/
--regex-tex=/\\ref[ \t]*\*?\{[ \t]*([^}]+)\}/\1/r,ref/
--regex-tex=/\\cite[ \t]*\{([^},]+)[^}]*\}/\1/c,cite/
--regex-tex=/\\cite[ \t]*\{[^},]+,[ \t]*([^},]+)[^}]*\}/\1/c,cite/
--regex-tex=/\\cite[ \t]*\{[^},]+,[^},]+,[ \t]*([^},]+)[^}]*\}/\1/c,cite/
--regex-tex=/\\cite[ \t]*\{[^},]+,[^},]+,[^},]+,[ \t]*([^},]+)[^}]*\}/\1/c,cite/
--regex-tex=/\\bibitem[ \t]*\*?\{[ \t]*([^}]+)\}/\1/b,bibitem/
Спасибо сказали:
Ответить