Все началось с того что eclipse+pdt стал много съедать моего рабочего времени доедая последние метры двугектарной оперативы моего ноута. Знай вы, уважаемые хабралюди, к этому моменту про какой ноут идет речь, вам бы так же показался мой выбор очевидным. Но к моему разочарованию TextMate оказался не стоящим тех полсотни баксов, которые за него просят. Не судите строго! Один из основных критериев для меня была возможность бегать от вызовов к объявлениям функций… в нашем проекте это очень полезная функция :) Так вот в книге по textmate на это я не нашел ни даже намеков, а ближайший соратник на утро сказал, что textmate это все же редактор, но хватит о textmate — о нем еще немного в конце. А поскольку я все же *nix-оид со стажем — первой бесплатной альтернативой стал ***VIM*** тада!!!
Я поднял свои старые ссылки по vim, пересмотрел свой старый .vimrc написанный год назад по мотивам allaboutvim. Но основной критерий все равно оставался за eclipse :( Но буквально читая мысли Chaos_Code в дни моего активного возвращения к vim пишет замечательную статью о vim. Из статьи я почерпнул много нового :) и в первую очередь вот тут и вот это:
Есть оказывается такая замечательная штука как cscope. Особо в глубь я не копал, поставил вот этот плагин в ~/.vim/plugins и взял ровно вот столько
после, как гласит упоминавшееся руководство, надо открыть vim в project_dir и выполнить
и единственное что мне довелось — добавить это один маппинг в .vimrc прототип для которого я нашел тут:
И теперь когда в вашем проекте вы захотите открыть место где определяется та или иная функция/класс — достаточно нажать Ctl+F наведя курсор на имя функции/класса, в лучшем случае вы сразу попадете на строку где искомое определяется :) а в проектах вроде тех, на котором я работаю, выпадет список вариантов…
И это не все :)
Как я и обещал в конце немного о textmate :)
Это тоже, как оказывается, не такой уж и «просто редактор» и конечно же все в нем автоматически создаст Вам cscope.out в папке проекта. Но черт возьми vim это все равно тру софт настоящий unix way editor:) Надеюсь облегчил кому-то жизнь ;)
UPD: И что самое примечательное благодаря mkevac нашлось более простое решение именно моей задачи:
после этого в папке проекта появляется файл tags и наступив на имя функции с помощью сочетания g] можно свободно переходить на место ее объявления. И как и в случае с cscope(о чем я совершенно забыл ранее) вернутся можно используя Ctrl+T
Безусловно cscope мощнее, ибо может не только это, но и переходить на функции вызываемые выбранной и функции вызывающие выбранную и немного больше(введите :cs — там все хорошо описано ;)), но для конкретной фичи, которой не хватало мне в vim использование ctags действительно проще.
И еще ремарочка — родной MacOS-овский ctags не работает так как это описано выше(а в оригинале ниже) — я поставил ctags из MacPorts и все побежало как положено
Я поднял свои старые ссылки по vim, пересмотрел свой старый .vimrc написанный год назад по мотивам allaboutvim. Но основной критерий все равно оставался за eclipse :( Но буквально читая мысли Chaos_Code в дни моего активного возвращения к vim пишет замечательную статью о vim. Из статьи я почерпнул много нового :) и в первую очередь вот тут и вот это:
Есть оказывается такая замечательная штука как cscope. Особо в глубь я не копал, поставил вот этот плагин в ~/.vim/plugins и взял ровно вот столько
cd project_dir
find . -name '*.php' > ./cscope.files
cscope -b
rm ./cscope.files
после, как гласит упоминавшееся руководство, надо открыть vim в project_dir и выполнить
:cs add cscope.out
и единственное что мне довелось — добавить это один маппинг в .vimrc прототип для которого я нашел тут:
nmap <c-f> :cs find g <c-r>=expand("<cword>")<cr><cr>
И теперь когда в вашем проекте вы захотите открыть место где определяется та или иная функция/класс — достаточно нажать Ctl+F наведя курсор на имя функции/класса, в лучшем случае вы сразу попадете на строку где искомое определяется :) а в проектах вроде тех, на котором я работаю, выпадет список вариантов…
И это не все :)
Как я и обещал в конце немного о textmate :)
Это тоже, как оказывается, не такой уж и «просто редактор» и конечно же все в нем автоматически создаст Вам cscope.out в папке проекта. Но черт возьми vim это все равно тру софт настоящий unix way editor:) Надеюсь облегчил кому-то жизнь ;)
UPD: И что самое примечательное благодаря mkevac нашлось более простое решение именно моей задачи:
$ cd project/
$ ctags -R
после этого в папке проекта появляется файл tags и наступив на имя функции с помощью сочетания g] можно свободно переходить на место ее объявления. И как и в случае с cscope(о чем я совершенно забыл ранее) вернутся можно используя Ctrl+T
Безусловно cscope мощнее, ибо может не только это, но и переходить на функции вызываемые выбранной и функции вызывающие выбранную и немного больше(введите :cs — там все хорошо описано ;)), но для конкретной фичи, которой не хватало мне в vim использование ctags действительно проще.
И еще ремарочка — родной MacOS-овский ctags не работает так как это описано выше(а в оригинале ниже) — я поставил ctags из MacPorts и все побежало как положено