Я пытаюсь настроить «настраиваемый язык» для тегаба vim, который позволит использовать тегбар для просмотра входных файлов с использованием анализа конечных элементов Abaqus.vim tagbar: настраиваемая языковая конфигурация
я продублировал примеры из следующих ссылок:
http://github.com/majutsushi/tagbar/wiki
http://andrew.stwrt.ca/posts/vim-ctags/
ctags, vimwiki, vim and tagbar-plugin
http://ctags.sourceforge.net/EXTENDING.html
Это софы tware Я использую:
- RHEL 6.7
- ВИМ 7.4
- tagbar 2.6.1
- Буйный Ctags 5,8
Пример входного файла Abaqus example.inp
** Analyst:
** Comments
** More comments
**
****************************************
** Section Name One
****************************************
*Keyword1
*KEYWORD2
**
****************************************
** Section Name Two
****************************************
*Keyword3
Это то, что я добавил в мой файл конфигурации ВИМ ~/.vimrc
let g:tagbar_type_AbaqusINP = {
\ 'ctagstype' : 'AbaqusINP',
\ 'kinds' : [
\ 's:Section',
\ 'k:Keyword'
\ ],
\ 'sort' : 0
\ }
Я создал файл конфигурации Ctags ~/.ctags
--langdef=AbaqusINP
--langmap=AbaqusINP:.inp
--regex-AbaqusINP=/^\*\*\*[\*]+\n\*\*[ \tA-Za-z]+/\3/s,Section/
--regex-AbaqusINP=/^\*[A-Za-z]+/\1/k,Keyword/
Когда я открываю файл ввода и то открыть тегбар ничего не существует. AbaqusINP * .inp находится в списке, когда я вызываю из командной строки следующее.
$ ctags --list-maps
Ant *.build.xml
...
AbaqusINP *.inp
При попытке вручную создать файл тегов я получаю следующие предупреждения для каждой строки, где находится ключевое слово.
$ ctags example.inp
ctags: Warning: example.inp:8: null expansion of name pattern "\1"
ctags: Warning: example.inp:9: null expansion of name pattern "\1"
ctags: Warning: example.inp:14: null expansion of name pattern "\1"
Файл тегов создан, но заполняется только заголовком по умолчанию.
!_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/
!_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/
!_TAG_PROGRAM_AUTHOR Darren Hiebert /[email protected]/
!_TAG_PROGRAM_NAME Exuberant Ctags //
!_TAG_PROGRAM_URL http://ctags.sourceforge.net /official site/
!_TAG_PROGRAM_VERSION 5.8 //
Любые мысли о том, почему Ctags не создает теги для tagbar использовать? Спасибо за вашу помощь.
Update: Уточнить желательные регулярные выражения.
Мне нужны названия разделов и ключевые слова, которые будут назначены теги. Я пробовал эти шаблоны в vim, и они, похоже, работали правильно.
Для примера.вх файл выше, я хотел бы регулярное выражение для сечения, чтобы вернуться:
- Раздел Имя Один
Раздел Название Два
section_regex = ^\*\*\*[\*]+\n\*\*[ \tA-Za-z]+
Для файла example.inp выше Я бы хотел, чтобы регулярное выражение возвращало ключевые слова:
-
Ключевое слово 1
- KEYWORD2
- KEYWORD3
keyword_regex = ^\*[A-Za-z]+
Случайная мысль: старайтесь избегать многострочных шаблонов – Vitor
Не могли бы вы показать нам, что вы пытаетесь совместить и захватывать своими регулярными выражениями? Кроме того, у вас нет групп в шаблоне «Секция», поэтому у ctags будет сложнее извлечь третий. – romainl