Комментарии 38
почему «unux»?
0
А для каких языков вы используйте cscope?
0
Пока только для php и для python. На сайте cscope в примерах активно фигурирует java.
+2
Спасибо. А то я натыкался уже на эту утилиту, но так как там нет ни слова о php, то и не использовал… Теперь буду пробовать :)
0
Очень интересно было бы прочитать прочитать про полную настройку вима. Ибо у меня ситуация очень похожа — тоже эклипс, тоже не очень устраивает быстродействие (хотя 3 гига памяти на моем ноуте он еще ни разу не занимал), так же использую для php и python (ну и соответственно html, javascript, css). Давно собираюсь попробовать emacs или vim, но времени на то чтобы сесть и с нуля все разобрать нету. Было бы очень интересно начать с быстрого старта на примере уже готовой сборки.
По опубликованым вами ссылкам конечно же сейчас пойду, но хотелось бы иметь инструкцию в одном месте от и до.
По опубликованым вами ссылкам конечно же сейчас пойду, но хотелось бы иметь инструкцию в одном месте от и до.
+2
habrahabr.ru/blogs/vim/53435/ и упомянутая там статья с allaboutvim.blogspot.com вполне может сойти под то, что вам надо. Именно поэтому я не стал повторятся и писать столько же и о том же :)
0
Посмотрите этот блог, походите по ссылкам приведенным в этой статье. Тут очень много материала, который позволит превратить Вам Vim в мощную среду, и даст мотивацию периодически изучать чтото новое в нем. Я работал на Zend Studio, но критерием стала не скорость зенда, а скорость работы в Zend. Плюс чтобы редактировать файлы на разных языках программирования, одного Zend Studio мало., а мне раньше часто приходилось работать с XSLT, а его поддержки в ZDE нету. Вот и решил попробовать VIm. Попробовал, понравилось, уже несколько месяцев на нем :)
+2
Тех кого не устраивает быстродействие Eclipse PDT — просто отключайте Compiz, т.к. прокрутка тормозит именно из-за него ;-)
Кстати у меня тоже 3 гига памяти на ноуте, но занято вместе с Eclipse PDT максимум 1400 магабайт (ОС — FC10, Turion X2 1.6 GHz). Что я делаю не так?
Кстати у меня тоже 3 гига памяти на ноуте, но занято вместе с Eclipse PDT максимум 1400 магабайт (ОС — FC10, Turion X2 1.6 GHz). Что я делаю не так?
+1
полезно, спасибо :) Попробую у себя тоже :)
0
А почему не ctags? Ведь всё намного проще и не надо никакого плагина.
+4
Просто найдя вызов функции в коде, и перейдя по нему на ее объявление разве не удобней?
0
Так ctags именно это и делает. И не только. Не очень понимаю почему вы пошли по длинному пути.
cscope мощнее, да, но:
1) ненамного
2) он только для языка Си
3) вы мощью этой не пользуетесь, а используете самое простое — переход по «ссылке»
4) требует дополнительной настройки (плагин)
cscope мощнее, да, но:
1) ненамного
2) он только для языка Си
3) вы мощью этой не пользуетесь, а используете самое простое — переход по «ссылке»
4) требует дополнительной настройки (плагин)
0
Конечно же я говорю про встроенную связку vim и ctags, а не просто ctags.
+2
mkevac — как минимум во 2 пункте есть неточности, потому как я успешно применил его возможности для своих python и php проектов, а на официальном сайте cscope примеры просто кишат паттерном *.java.
А с остальным конечно я учту и покручу как то на досуге ctags(обещаю), просто так вышло что cscope ранше мне в руки попал — ничего предвзятого по отношению к ctags не чувствую.
А с остальным конечно я учту и покручу как то на досуге ctags(обещаю), просто так вышло что cscope ранше мне в руки попал — ничего предвзятого по отношению к ctags не чувствую.
0
Виноват. Поддерживает ещё несколько. Тем не менее несравненно меньше, чем ctags. Просто факт, я ни в коей мере не ругаю cscope.
А там ничего и делать не надо…
$ cd project/
$ ctags -R
$ gvim src/main.c
А в gvim-е просто Ctrl-] (или g] — есть некоторые отличия) для перехода и Ctrl-T для возврата. Более подробно в help-е vim-а.
Повторю. Я не ругаю cscope и не хвалю ctags. Просто странно было что вы начали настраивать сначала cscope, когда vim по умолчанию и без лишних телодвижений работает с ctags.
А там ничего и делать не надо…
$ cd project/
$ ctags -R
$ gvim src/main.c
А в gvim-е просто Ctrl-] (или g] — есть некоторые отличия) для перехода и Ctrl-T для возврата. Более подробно в help-е vim-а.
Повторю. Я не ругаю cscope и не хвалю ctags. Просто странно было что вы начали настраивать сначала cscope, когда vim по умолчанию и без лишних телодвижений работает с ctags.
+1
Есть ещё такая штука: www.gnu.org/software/global/
0
mkevac, как с помощью ctags из места объявления функции:
перейти к вызову этой функции, например
По-моему, никак.
class A
{
void f();
}
перейти к вызову этой функции, например
for (i=0;i<20;++i)
{
f();
}
По-моему, никак.
0
Никак. Автору это и не требовалось, насколько я понял. Требовалось перейти от вызова к определению.
0
как я понял почитав текст плагина cscope_mappings.vim — это только маппинг, а сама cscope встроена в vim так же как и tags :)
0
ctags прекрасный продукт. Особенно в связке с VIM.
Я ещё могу посоветовать kscope, Мы его используем наряду с vim.
Я ещё могу посоветовать kscope, Мы его используем наряду с vim.
0
А Komodo IDE пробовали?
0
Да. Когда на Ubuntu еще работал. И именно что пробовал :) так в свободную минутку и Edit. Но поскольку меня в eclipse было все выносимо еще(то была Europe, а не Ganymede), то я как бы не дергался особо — так покликал по менюхе, понабирал кодец — чесно скажу не зацепило… один из множества, как мне тогда показалось :)
0
и у ctags и у cscope есть одна фича:
если файл с определением функции изменился, то все тэги надо переиндексировать, ибо позиции строк уже съехали.
поэтому на сохранение буфера надо ещё прикрутить autocmd с вызовом cscope для этого файла.
если файл с определением функции изменился, то все тэги надо переиндексировать, ибо позиции строк уже съехали.
поэтому на сохранение буфера надо ещё прикрутить autocmd с вызовом cscope для этого файла.
+3
Даа..)) Читаешь комменты к статьям про Vim и поражаешься его возможностям настройки, расширения, гибкости))
+2
au на сохранение буфера идея классная, но на большом проекте любое сохранение будет в таком случае неприятным напрягом :)
я сделал немного иначе
fu! RebuildPhpTags()
let out = system(«rm -rf ./cscope.out && find. -name '*.php' > ./cscope.files && cscope -b && rm -rf ./cscope.files»)
cs reset
endf
nmap <Leader>rh :call RebuildPhpTags()для небольших проектов можно и по сохранению
au BuffWritePost *.php :call RebuildPhpTags()
решение спешное, можно и по расширению текущего файла (expand("%:e")) выбирать в find файлы соответствующие. А можно вообще давать на вход cscope все файлы (*) и не парится :)
я сделал немного иначе
fu! RebuildPhpTags()
let out = system(«rm -rf ./cscope.out && find. -name '*.php' > ./cscope.files && cscope -b && rm -rf ./cscope.files»)
cs reset
endf
nmap <Leader>rh :call RebuildPhpTags()для небольших проектов можно и по сохранению
au BuffWritePost *.php :call RebuildPhpTags()
решение спешное, можно и по расширению текущего файла (expand("%:e")) выбирать в find файлы соответствующие. А можно вообще давать на вход cscope все файлы (*) и не парится :)
+2
только нафигаж cscope.out прибивать?
On a subsequent invocation, cscope rebuilds the cross-reference only if a source file has changed or the list of source files is different. When the cross-reference is rebuilt, the data for the unchanged files are copied from the old
cross-reference, which makes rebuilding faster than the initial build.
On a subsequent invocation, cscope rebuilds the cross-reference only if a source file has changed or the list of source files is different. When the cross-reference is rebuilt, the data for the unchanged files are copied from the old
cross-reference, which makes rebuilding faster than the initial build.
0
я сделал тоже самое но для ctags :)
файл ~/.vim/plugin/my_project.vim:
и в vimrc:
файл ~/.vim/plugin/my_project.vim:
" объявим переменные, чтобы можно было их переназначать для проекта
let g:my_project_dir = '/var/www/project/'
" файл тага в папке с проектом, и называется tags
let g:my_project_tagfile = g:my_project_dir . "tags"
function ReloadProjectTags()
exec "!ctags -Ro " . g:my_project_tagfile . " " . g:my_project_dir
endfunction
" чтобы еще делать в командном режиме принудительно
command ReloadProjectTags :call ReloadProjectTags()
и в vimrc:
if has("autocmd")
autocmd BufWrite *.php call ReloadProjectTags()
endif
0
А можете подсказать, как сделать автоматическое закрытие html тэгов?
0
Посмотрите пожалуйста эту статью. Там есть ссылка на плагин в соответствующем разделе про поддержку XSL, XSLT, XML, XHTML.
Если лень читать все, то вот ссылка сразу на плагин — www.vim.org/scripts/script.php?script_id=1397
Если лень читать все, то вот ссылка сразу на плагин — www.vim.org/scripts/script.php?script_id=1397
+2
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.
Как vim затмение победил(ходим по функциям как в eclipse)