2012-04-28 2 views
4

В моих проектах я использую virtualenv и django, и я пытаюсь найти более эффективный способ просмотра исходного кода django.ctags с taglist в vim и python virtualenv

Как советовали здесь - Tools to help developers reading class hierarchy faster - я сам установленный с Ctags через

sudo port -v install ctags 

и установили VIM плагин taglist через https://github.com/vim-scripts/taglist.vim

К сожалению, кажется, что ctags не может найти класс моего Джанго когда Я попытался «прыгать», чтобы просмотреть класс через Ctrl +].

Любые предложения, как я могу получить ctags, чтобы прочитать исходный код python, расположенный в моем virtualenv?

ОБНОВЛЕНИЕ

С дальнейшими экспериментами, я понял, что ctags какое-то программа «индексация», которая разбирает через данную директорию/файлы/файл и захватывает все ключевые слова (имена классов, имена методов, функции имена и т. д.), он находит и записывает его в файл. Этот файл может быть обновлен, и vim-плагин taglist по существу читает его, чтобы узнать, куда мне отправить, когда я делаю Ctrlt по названию класса/метода/функции.

Так я пришел с временным и ручным решением, которое я выполняю в моей Vim, как это: -

:set tags=~/mytags 
:! ctags -R -o ~/mytags ~/.virtualenvs/myprojectname 

Первая команда говорит мой VIM/taglist, где хранятся мои «индексированные» результаты.

Вторая команда записывает индексированные результаты в ~/mytags файл с помощью функции поиска рекурсивно (-R) вниз ~/.virtualenvs/myprojectname

Это работает, но это очень ручной способ сохранить теги и теги изменится, если я, случается, в другом virtualenv Окружающая среда.

Кто-нибудь знает о автоматизированном способе управления этим процессом ctags?

ответ

4

There are many "automatic tags generation" plugins available.

TagList не читает из любого tags вы должны вручную автоматически /: он звонит ctags себя и читает свою продукцию напрямую.

Также вы можете прочитать :help autocmmand. Можно установки автокоманды повторно сгенерировать tags на записи, как это:

autocmd BufWritePost,FileWritePost *.py :silent! !ctags -R -o ~/mytags ~/.virtualenvs/myprojectname 
+0

была ваша ссылка, указывая на некоторые, где? Я получаю 404. И в отношении вашего примера автокоманды, это немного сложнее, потому что 'vim' должен определить, какой виртуальный ящик python у меня есть, когда он открывает конкретный файл, и я не уверен, что есть способ автоопределить, какие virtualenv файл проекта «принадлежит». –

+1

Ссылка исправлена. Также см. [Этот плагин] (https://github.com/jmcantrell/vim-virtualenv), он должен облегчить работу с virtualenv. – romainl

Смежные вопросы