а насчет дерева проекта: проект это набор файлов в каком-то иерархическом множестве подкаталогов.
или по-другому можно: проект можно разбить на модули, в которых будут классы (в терминах С++), у классов будут методы и свойства. это тоже можно назвать деревом проекта.
если проект это не дерево, тогда что же это? в более сложных случаях проект это множество модулей, каждый из которых представляет собой собственный проект, имеющий вышеописанную иерархическую структуру. вот возможность навигации по модулям/файлам/методам в файлах я считаю необходимой фичей для разработки проектов.
если к этому добавляется еще и
- показ списка методов объекта
- варианты параметров функции
- вызов хэлпа на метод, на котором стоит курсор
- возможность компиляции и отладки с минимальными телодвижениями
- возможность делать букмарки (и чтобы они сохранялись при закрытии файла и повторном его открытии через неделю)
то получается что-то нормальное и удобное для работы
Беда чайников в том, что они не читали даже Кернигана и Пайка "Unix - универсальная среда программирования". Вот и не понимают, что такое на самом деле IDE.
Да, да, это любимая фраза на ru.linux, но не мог бы ты дать ссылку на русский pdf этой книги?
Все виндовые языки интегрируються без проблем, у нас например числадробилки написаны на Visual Fortran - так туда даже дебагером зайти можно если что и порулить. Редактор? VIM интегрируеться в MSVC - причем эта интеграция - небольшой файл на VBScript, напиши этот скрипт для _твоего_ любимого редактора.
Еще лично мне больше всего не хватает такого же мощного *очень* удобного дебаггера как в MSVC
В том и дело - что нет смысла вообще браться за программирование до тех пор, пока не проникся идеологией, пока не умеешь даже свою юзерскую работу рационализировать и автоматизировать. Я вообще не понимаю, на какой контингент рассчитаны всякие Delphi да MSVS - что не на программистов - очевидно, не для поварусеров - тоже понятно... Для чайников, желающих выпендриться, и сделать вид, что они тоже программисты? Опять же - не подходит, есть средства лучше.
Про дебаггеры - это ещё одно ба-альшое зло. Зачем они нужны - не совсем понятно. Как инструмент паталогоанатома (вроде gdb -c core) - то, что есть в MSVS не канает. В других случаях деблохатор приносит один лишь вред, никакой пользы от него, как бы "удобен" он не был.
P.S. естественно, в emacs прекрасно можно вводить русский и без мульки. Мулька - вообще извращение.
насчет лиспа - согласен поддержки как таковой не предусмотрено, хотя добавить к проекту лисповый файл и задать для него специальные команды компиляции можно очень запросто.
gvim интегрируется в MSVC6. только не VBScript'ом вроде, а в виде отдельного плагина. емакс, как мне сказали, тоже интегрируется. Visual Assist - это тоже другой редактор. все ок :)
насчет дебаггера: ну я не против иметь нормальный дебаггер. конечно, можно в логи писать информацию, а потом долго думать, но иногда полезно просто продебажить. скажем так, это может изрядно сэкономить время в определенные моменты, а в остальные оно есть не просит.
в виндах все заточено на окошки и кнопочки. без визуальной среды расстановки оных жить очень непросто. механизма типа gtk, где framework за тебя сам расставляет виджеты, там нету. поэтому визуальный редактор необходим (руками .rc-файлы писать это перебор).
в *никсах попроще: морду на glade наваял и накручивай дальше сам как хочешь. насчет кде не знаю - не работал. там, мне кажется, все как в виндах - по координатам.
Antichrist, насчет навигации по дереву проекта ты мне так и не ответил... или это тоже зло?
а насчет многоплатформенных проектов итп: дело в том, что Makefile'ы никто не отменял. они есть и в MSVC, и при желании там можно реализовать все то же, что и на *никсовых платформах. другое дело, что MSVC предоставляет и более человеческий интерфейс, чего пока нет в *никсах.
т.е. если фичи среды не нужны - пожалуйста, работай в консоли и делай все как тебе удобно. а приспичило визуальности - ок, вот тебе визуальность, дерево проектов, дебаггер итп.
to ov: За емакс не скажу, а vim'e у меня это делается так:
- показ списка методов объекта - у меня на скриншоте видно. нажать 2 кнопки.
- варианты параметров функции - wtf
- вызов хэлпа на метод, на котором стоит курсор - shift-K.
- возможность компиляции и отладки с минимальными телодвижениями - у меня на <F9> забинден запуск make
- возможность делать букмарки (и чтобы они сохранялись при закрытии файла и повторном его открытии через неделю) - у меня вообще вся сессия сохраняется. Не только букмарки, но и список открытых файлов с различными вариантами фолдинга.
А вся навигация делается по Ctrl-] через cscope/ctags.
ECB is source code browser for Emacs. It is a global minor-mode which displays a couple of windows that can be used to browse directories, files and methods. It supports method parsing for Java, C, C++, Elisp etc.
Очень удобен - можно как мышкой так и с клавиатуры добираться до всего + легко настраивается и нормальные доки - попробуй.
Ну вот..пришел на работу - запустил MSVC повисла при открытии проекта - причем намертво))) что-то опять с VSS :) Радуйтесь любители пингвина - вим не виснет - это точно))))
в любом факе по русификации линукс есть
например на www.linux.ru
две строчки в .vimrc
emacs у меня вчера в корку свалился один раз с этим ecb (в консоли был запущен) - я удивлен :)
нет, все-таки emacs мне не по душе. буду и дальше использовать vim.
2Bacek: два вопроса к тебе
что и как у тебя вызывается по wtf? у меня ничего не происходит
как у тебя сохраняется сессия? может ли быть несколько сессий типа проектов? как это делается?
to ov: wtf - это wtf :) Я просто не понял фразы "Варианты параметров функции"
А сессия сохраняется так: в ~/.vimrc дописываешь
autocmd VimLeave *.cpp,*.h,*.idl mksession! .vimsession
au BufWinLeave *.cpp,*.h,*.idl mkview
au BufWinEnter *.cpp,*.h,*.idl silent loadview
и делаешь адиас на vim -S .vimsession
Тогда при загрузке будет восстановлена старая сессия.
Ещё до кучи можно вписать в ~/.vimrc следующее
autocmd BufReadPost *.cpp syn region myFold start="{" end="}" transparent fold
syn sync fromstart
set foldmethod=syntax
Что бы фолдить cpp исходники по парным {}.
Ну и ещё set cst, для использования cscope вместе с ctags.
to anonymous:
в ~/.vimrc написать
set langmap=йq,цw,уe,кr,еt,нy,гu,шi,щo,зp,х[,ъ],фa,ыs,вd,аf,пg,рh,оj,лk,дl,э',яz
,чx,сc,мv,иb,тn,ьm,б\,,ю.,йQ,ЦW,УE,КR,ЕT,НY,ГU,ШI,ЩO,ЗP,Х{,Ъ},ФA,ЫS,ВD,АF,ПG,РH,
ОJ,ЛK,ДL,Ж\",ЯZ,ЧX,СC,МV,ИB,ТN,ЬM,Б<,Ю>,
При использоавнии двуручной клавиатуры пользоваться стрелками не так удобно, как hjkl - они лежат как раз на правой руке, что мне очень нравиться. Понадобилось немного времени, чтобы приучить себя без усилий дотягиваться левым мизинцем до Esc, но это дело наживное.
Еще у меня есть чувство, что пару лет использую как максимум 2-5% прелестей vim'a, может кто подскажет ресурс повкуснее :))).
P.S.
Еще есть такой прикол: F6 на такой клаве приходится на обычное место F5, имейте в виду :)). Мне тогда было не очень смешно...
Товарищи профессиналы! Ваш хваленый VBA как средство автоматизации работает только для C++?
А то есть задача -- автоматизировать сборку зависимых VB-проектов. Как это можно сделать в Visual Studio? И как назначить короткую комбинацию клавиш на компиляцию?
А то пыжиться все горазды, а как до дела дойдет, так VS таким отстоем оказывается...