VIM авто-создание CTags - PullRequest
       8

VIM авто-создание CTags

4 голосов
/ 09 января 2012

Мне нравятся Ctags, но тот факт, что каждый раз, когда я добавляю новый метод, мне нужно воссоздавать мой файл, это может быть неэффективно, не только это, но если мне нужно перезапустить сеанс VIM, это еще хуже, я также заметил, что мне нужно создать файл CTags для каждого каталога, с которым я хочу работать, а не просто сделать его в корневой папке и иметь доступ ко всем папкам.

Какие-нибудь советы и рекомендации?

Ответы [ 2 ]

6 голосов
/ 09 января 2012

Я уже написал плагин, чтобы делать именно то, что вам нужно: Indexer .

Он обеспечивает безболезненную автоматическую генерацию тегов для всего проекта (-ов) и поддерживает актуальность тегов.,Вы можете использовать его самостоятельно или в качестве дополнения для другого плагина project.tar.gz .

Во-первых, вы можете объявить свои проекты в ~/.indexer_files следующим образом:

[CoolProject]

/home/user/cool_project

[AnotherProject]
option:ctags_params = "--languages=c++"

/home/user/another_project/src
/home/user/another_project/lib 

И тогда, когда вы откроете какой-либо файл из /home/user/cool_project, весь этот проект будет проиндексирован ctags.Теги генерируются в фоновом режиме, поэтому вам не нужно ждать, пока ctags генерирует теги.Когда вы открываете теги из другого проекта, теги тоже создаются для него.Теги из разных проектов никогда не смешиваются.Когда вы сохраняете файл из проекта, теги автоматически обновляются.Вам не нужно заботиться об этом, он просто работает.

Для получения подробной информации см. Мою статью: Vim: удобная навигация по коду для ваших проектов , в которой объясняется использование Indexer + Vimprj.тщательно.

2 голосов
/ 09 января 2012

С этим в вашем .vimrc

set tags=./tags,tags;$HOME

Vim будет сначала искать файл tags в каталоге текущего файла, затем в текущем каталоге, затем вверх и вверх, пока не достигнет$HOME.

Автоматическая генерация tags может быть выполнена с помощью плагина типа AutoTag или с одним вкладышем в вашем .vimrc:

autocmd BufWritePost,FileWritePost *.js silent! !jsctags . &
...