LINUX.ORG.RU

emacs, процесс разработки, как???


0

0

В последний месяц более или менее тесно занялся процессом разработки, используя emacs. Быстро научился тыкать в базовые клавиши, разбил фрейм на подфреймы и подумал, что крут. Но...тут я понял. Вернее осознал, что emacs что-то не хватает и это:

1. Автодополнения до объявленных переменных(локальных и глобальных), макросов и т.п. Ну, скажем, что etags, GNU global более или менее спарвляются с этим... ноо очень плохо. Скажем, есть структура, объявлена под неё переменная. имя самой структуры(если он глобальное) еще дополнится, но вот потом поскроллить по ее членам (как это сделано в MS VS, eclipse, NetBeans) нельзя. Надо лезть в другой заголовочный файл, точно вспоминать название и т.п. Ясно, что неудобно.

2. Список функций, макросов, переменных слева(справа) - неважно где. в отдельном окошке. Знаю, что есть ecb, но.. он какой-то гадостный, или я не мог найти НОРМАЛЬНОГО config файла под него(дабы настроить размер окон как я хочу, быстрый переход и т.п.)

т.е. маленькие проекты на нём(emacs) можно делать. Если же проект распухает до большего, чем 5 исходных файлов, то уже возникают затрудения.

Впринципе, есть такая вещь, как eclipse. Вроде всё ок. Но оочень он уж начинает напрягать CPU( причём любой - от Duron 700 до Core2 Duo) и при каждой пересборки слушать возрастающее дуновение охладающего кулера тоже достало. Хотя, для Java-developing - вещь незаменимая, тут бесспорно. (а если представить разработку Java приложения на emacs - ужас охватывает, сколько времени займёт простая настройка проекта)

Вопрос - что посоветуете? как вы "заточили" emacs? Да, может (g)vim лишен всего этого?

p.s. emacs не хаю. Хороший, интересный инструмент. Но, видимо, пока я им не прочуствоваля до конца :-(

> Скажем, есть структура, объявлена под неё переменная. имя самой
> структуры(если он глобальное) еще дополнится, но вот потом

> поскроллить по ее членам (как это сделано в MS VS, eclipse,

> NetBeans) нельзя.


Не, ну с сишкой семантик работает устойчиво. Члены структур дополняются.

Sphinx ★★☆☆
()
Ответ на: комментарий от Sphinx

Хмм, semantic? Надо глянуть. Но, вот сам себе пока ответили на пару вопросов. После гугленья нашёл, что есть такое, как ctrl-n/ctr-p в vim. Не, ну ё-моё, это же самое то! Без всяких там TAGS файлов и всего прочего идёт дополнение до файлов, загруженных в проект в данный момент.

fukazzz
() автор топика
Ответ на: комментарий от fukazzz

Так, позор на мои седины. В emacs, оказывается есть A-/ :D

fukazzz
() автор топика

ключевое слово CEDET и Semantic. Только CEDET надо брать только из CVS. Semantic умеет использовать информацию из gtags & ctags для дополнения имен и т.п. Ну и сам умеет парсить файлы. Автор бысто реагирует на неработающие примеры.

P.S. я сейчас как раз пишу небольшое HOWTO про настройку и использование Semantic

ott ★★★★★
()

> Список функций, макросов, переменных слева(справа) - неважно где. в отдельном окошке.

M-x ecb-create-new-layout

> быстрый переход

После долгих скитаний как проще, быстрее и удобнее перемещаться по фреймам, нашел такой способ:

(global-set-key (kbd "s-<up>")      #'windmove-up)
(global-set-key (kbd "s-<down>")    #'windmove-down)
(global-set-key (kbd "s-<left>")    #'windmove-left)
(global-set-key (kbd "s-<right>")   #'windmove-right)

На <f12> повешано скрытие/показ окон Ecb.

Как-то так:

http://img.flashtux.org/upload/img1328cfa27bf7x597da411.png

ps файл открытый в текущем буффере не отображается в ECB Directories потому что директория скрыта.

a3
()
Ответ на: комментарий от vasily_pupkin

Про скитания по фреймам - тоже примерно так делал раньше. потом нашёл такое http://nschum.de/src/emacs/. есть куча интересных *.el файлов. Среди них - windows.el. Вкратце - кажому окну номер, переключение по M-#окна. вроде удобно

fukazzz
() автор топика
Ответ на: комментарий от tailgunner

В 23.2 емакс включат, можешь считать это «стабильной версией».
Впрочем, если и всё постоянно из CVS обновлять, никаких проблем.

Sphinx ★★☆☆
()

> 1. Автодополнения до объявленных переменных(локальных и глобальных), макросов и т.п. Ну, скажем, что etags, GNU global более или менее спарвляются с этим... ноо очень плохо. Скажем, есть структура, объявлена под неё переменная. имя самой структуры(если он глобальное) еще дополнится, но вот потом поскроллить по ее членам (как это сделано в MS VS, eclipse, NetBeans) нельзя. Надо лезть в другой заголовочный файл, точно вспоминать название и т.п. Ясно, что неудобно.

Ох ты ж. Автодополнять локальные переменные? "Точно вспоминать название" неудобно? Хех. Если это ваш код, то вам нужно его выбросить (ну, или передалать, уменьшим количество обьектов, с которыми работаете, уменьшить связанность, дать говорящие названия вашим обьектам. и руководствоваться всегда одними и теми же правилами при именовании обьектов, чтобы в случае чего нужно было не вспоминать, а заново "выдумать".)

Если код не твой - то опять же, не вижу проблем. Когда я работаю с незнакомой либой, у меня как минимум открыт(ы) её хидеры и построенны ctags. cscope использовал очень редко - только для ковыряния с linux.

Кстати, если ещё не пробовал - советую попробовать какой-нибудь tiled WM.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.