ну у меня выбора не было. сейчас уже есть
IDE под Linux (Интегрированные среды разработчика)
Модератор: Модераторы разделов
-
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: IDE под Linux
-
- Сообщения: 8
- ОС: Debian
Re: IDE под Linux
Есть ли какой-то плагин для нормального автодополнения кода в KDevelop? А то встроенное на столько кривое...
-
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: IDE под Linux
там вроде 3 штуки автодополнений. пощёлкайте настройки, настройте по вкусу.
-
- Сообщения: 113
- ОС: Gentoo 2008
Re: IDE под Linux
Решил не создавать новую тему раз уж тут такая пьянка ...
В общем сформировались у меня требования к редактору и вот они:
1: автодополнение табом. Да не просто дополнение а умное дополнение, а именно:
1а: редактор должен парсить все инклуды которые добавлены в файл рекурсивно и использовать имена функций, пременных, типов, классов, макросов при автодополнении в текущем буфере
1б: редактор должен дополнять только те имена функций, которые возвращают тип данных соответствующий контексту например так
в данном случае должен дополнить только переменные типа int и функции возвращающие int
1в: должен парсить прототипы функций (из инклудов в том числе) и автодополнять параметры функций с учетом типа
как в пункте 1б
2: редактор должен за меня формировать структуру кода как бы я не писал должно выглядеть одинаково. Например:
или так
выглядеть после последнего нажатия enter должно одинаково и удобочитаемо
3: справка по функциям. Эте не маны в редакторе, просто хочу чтобы при нажатии шотката в минибуфере показал прототип функции или
4: навигация по коду: вижу переменную - жмакаю шоткат и перехожу к месту ее обявления, жму другой шоткат попадаю обратно.
Знаю что все можно сделать в emacs пока курю его.
Может у кого есть готовая конфа похожая на требования или дельные советы буду рад!
Спасибо.
В общем сформировались у меня требования к редактору и вот они:
1: автодополнение табом. Да не просто дополнение а умное дополнение, а именно:
1а: редактор должен парсить все инклуды которые добавлены в файл рекурсивно и использовать имена функций, пременных, типов, классов, макросов при автодополнении в текущем буфере
1б: редактор должен дополнять только те имена функций, которые возвращают тип данных соответствующий контексту например так
Код: Выделить всё
int a;
a=
в данном случае должен дополнить только переменные типа int и функции возвращающие int
1в: должен парсить прототипы функций (из инклудов в том числе) и автодополнять параметры функций с учетом типа
как в пункте 1б
2: редактор должен за меня формировать структуру кода как бы я не писал должно выглядеть одинаково. Например:
Код: Выделить всё
for (int i;i<10;i++) {
a=i+myfunc();
get_a(a);
};
или так
Код: Выделить всё
for (int i;i<10;i++) {a=i+myfunc();get_a(a);};
выглядеть после последнего нажатия enter должно одинаково и удобочитаемо
3: справка по функциям. Эте не маны в редакторе, просто хочу чтобы при нажатии шотката в минибуфере показал прототип функции или
4: навигация по коду: вижу переменную - жмакаю шоткат и перехожу к месту ее обявления, жму другой шоткат попадаю обратно.
Знаю что все можно сделать в emacs пока курю его.
Может у кого есть готовая конфа похожая на требования или дельные советы буду рад!
Спасибо.
-
- Сообщения: 243
- ОС: Win7/Ubuntu 11.10
Re: IDE под Linux
Более или менее нормально парсить умеют Eclipse+CDT/Emacs+Xrefactory/Netbeans+Plugin. Старый KDevelop полный отстой, насчет нового не знаю. Редакторы текстов вроде vim/kate/gedit/.... парсить плюсовый код нормально не умеют.
RazorJack писал(а): ↑07.07.2009 22:561б: редактор должен дополнять только те имена функций, которые возвращают тип данных соответствующий контексту например так
Код: Выделить всё
int a;a=
в данном случае должен дополнить только переменные типа int и функции возвращающие int
1в: должен парсить прототипы функций (из инклудов в том числе) и автодополнять параметры функций с учетом типа
как в пункте 1б
Этого вроде никто для C++ пока делать не умеет, даже в хваленом MSVC+VA этого нет.
RazorJack писал(а): ↑07.07.2009 22:562: редактор должен за меня формировать структуру кода как бы я не писал должно выглядеть одинаково. Например:
Код: Выделить всё
for (int i;i<10;i++) { a=i+myfunc(); get_a(a); };
или так
Код: Выделить всё
for (int i;i<10;i++) {a=i+myfunc();get_a(a);};
выглядеть после последнего нажатия enter должно одинаково и удобочитаемо
Форматировать выделенный кусок кода можно много где. Так же обычно правильная структура кода уже по мере набора формируется, а не после нажатия enter.
Навигация по коду зависит от того, насколько хорошо распарсились исходники. А так она в каком-то виде почти везде есть, в крайнем случае вываливается список из всевозможных вариантов и предлагается самому выбирать к какому элементу нужно перейти.
Рекомендую посмотреть на Xrefactory, т.к. это пока самое лучше средство для навигации по исходникам из тех, что я видел.
-
- Сообщения: 113
- ОС: Gentoo 2008
Re: IDE под Linux
Чтото у Xrefactory сайт не работает в портах его нет да и в оверлеях тоже, а вот про cedet я много хорошего читал. Якобы это фреймворк для паринга кода в том числе C/C++. Только вот чтобы это все заработало надо разобратся сначала с elisp ом а потом еще с интерфейсами cedet и уже только тогда ты сможешь написать свой конфиг для подобных извращений.
Пойду легким путем:: не написал ли кто готовый конф ??
Кстати VIM еры тоже приглашаются на обсуждение (понимаю что они с емаксерами кровные враги но все-же) vim умеет автодополнять из инклудов по C-n, по C-p из словаря. На [-i покажет в минибуфере как объявлена переменная, а на [-d покажет объявление макроса. При том что все это работает из коробки плюс встроенный режим для С (:set cindent) Одного не пойму :: если вим умеет парсить инклуды и находить объявления тогда почему он без тегов не может перейти на объявление функции а может только показать в минибуфере как она объявлена ? или надо сделать мап какой-то функции на шоткат ?
Повторюсь - моя цель не вим или емакс, моя цель редактор удовлетворяющий требованиям выше.
Потенциально емакс мощнее, но вим меньше точить и гораздо больше вещей работает из коробки.
Пойду легким путем:: не написал ли кто готовый конф ??
Кстати VIM еры тоже приглашаются на обсуждение (понимаю что они с емаксерами кровные враги но все-же) vim умеет автодополнять из инклудов по C-n, по C-p из словаря. На [-i покажет в минибуфере как объявлена переменная, а на [-d покажет объявление макроса. При том что все это работает из коробки плюс встроенный режим для С (:set cindent) Одного не пойму :: если вим умеет парсить инклуды и находить объявления тогда почему он без тегов не может перейти на объявление функции а может только показать в минибуфере как она объявлена ? или надо сделать мап какой-то функции на шоткат ?
Повторюсь - моя цель не вим или емакс, моя цель редактор удовлетворяющий требованиям выше.
Потенциально емакс мощнее, но вим меньше точить и гораздо больше вещей работает из коробки.
-
- Сообщения: 243
- ОС: Win7/Ubuntu 11.10
Re: IDE под Linux
Я имел ввиду проприетарный Xrefactory для C++, это не бесплатная вещь. А сайт у них действительно что-то не открывается...
Про emacs и cedet можно почитать здесь. Там же и конфиги вроде есть готовые.
А разве VIM уже научился анализировать исходники на C++ и строить AST, проводить семантический анализ? Там же тупое дополнение по словарю и нескольно простых эвристик, это просто не серьезно. Потому и работает почти никак.
-
- Сообщения: 113
- ОС: Gentoo 2008
Re: IDE под Linux
А разве VIM уже научился анализировать исходники на C++ и строить AST, проводить семантический анализ? Там же тупое дополнение по словарю и нескольно простых эвристик, это просто не серьезно. Потому и работает почти никак.
Именно так, вобщем решение такое : работаю пока в виме курю емакс в свободное время.
По ссылке что kamre мне дал конфигов готовых не надыбал.
-
- Сообщения: 243
- ОС: Win7/Ubuntu 11.10
-
- Сообщения: 113
- ОС: Gentoo 2008
Re: IDE под Linux
Спасибо за консультации kamre )
-
- Сообщения: 39
- ОС: Suse Linux
Re: IDE под Linux
Мне просто интересно,зачем так много людей пользуються Emacs'ом?
Ведь есть такие проги,как Kscope,Kdevelop....
Они имеют очень хароший интерфейс,плюс ненужно компилировать исходники командной строкой.
Может лучше воспользуйтесь ими?
Ведь есть такие проги,как Kscope,Kdevelop....
Они имеют очень хароший интерфейс,плюс ненужно компилировать исходники командной строкой.
Может лучше воспользуйтесь ими?
-
- Сообщения: 68
- ОС: Ubuntu
Re: IDE под Linux
Если уж такой оффтоп пошел:обьясните почему так много людей пользуются vi(m)?
По моему на переключения режимов уходит намного больше времени,чет то же самое сделать с помощью мыши.
Покажите пример эффективного использования.
По моему на переключения режимов уходит намного больше времени,чет то же самое сделать с помощью мыши.
Покажите пример эффективного использования.
-
- Сообщения: 39
- ОС: Suse Linux
Re: IDE под Linux
Я пишу драйвер,который нужно встроить в ядро.
Соответственно мне нужен скомпилированый файл ядра *.ko.
Что легче сделать,написать гдето 5 строк,или раз кликнуть?
Причем Emacs-универсальный редактор,а
Kdevelop специализируетса по девелопменту на С,там более он сразу дает заготовку под Kernel ядро.
Соответственно мне нужен скомпилированый файл ядра *.ko.
Что легче сделать,написать гдето 5 строк,или раз кликнуть?
Причем Emacs-универсальный редактор,а
Kdevelop специализируетса по девелопменту на С,там более он сразу дает заготовку под Kernel ядро.
-
- Сообщения: 120
- ОС: LFS, slackware
Re: IDE под Linux
В емаксе прекрасный REPL для lisp'ов (:
-
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: IDE под Linux
Kdev жутко тяжёлый и навороченный. а то, что есть в репах Mandriva2009.1 - недоделанная бета, причём откатится на более старую версию у меня не получилось
-
- Сообщения: 156
- Статус: Дракон-линуксоид
- ОС: Slackware Linux
Re: IDE под Linux
На правах оффтопа :-)
В Vim'e тоже ненужно :-P
Они имеют очень хароший интерфейс,плюс ненужно компилировать исходники командной строкой.
В Vim'e тоже ненужно :-P
Код: Выделить всё
" Compile program using Makefile
au FileType c,cc,cpp,h,hpp,s imap <F5> <Esc>:make!<CR>a
au FileType c,cc,cpp,h,hpp,s nmap <F5> :make!<CR>
После каталога /etc понимаешь, что реестр - место, откуда нормальными не возвращаются.
-
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: IDE под Linux
и в mc есть макросы, да и везде...
у меня вроде всего 1 редактор без макросов - блокнот из wine
-
- Бывший модератор
- Сообщения: 5989
- ОС: OS X, openSuSE, ROSA, Debian
-
- Бывший модератор
- Сообщения: 5989
- ОС: OS X, openSuSE, ROSA, Debian
Re: IDE под Linux
сначала пробуешь ... потом из любого другого редактора начинаешь выходить по :wq, потом задумываешься о необходимости этого самого любого-другого редактора.
то что вы обычно делаете с помощью мыши в обычном редакторе в виме на локальной машине тоже можно сделать с помощью мыши. Но если вы до этого набирали текст, то нажать пару клавиш гораздо проще, чем тянуться к грызуну.
-
- Сообщения: 992
- ОС: Debian, Puppy
Re: IDE под Linux
А мне название темы ничего не говорит.
Какой IDE? для какого языка? какие тело- и умодвижения она призвана упростить?
У меня вообще не складывается в голове тенденция исходящая от новичков: -"хочу научиться программировать, какую IDE выбрать?" Ответ прост как стеклышко - никакую.
К делу.
В области web-разработки (сервер localhost, firefox + plugins, vim)
В области системного программирования (Vim - только потому что им пользуются большинство кодеров, а все остальное не круто То что IDE мешают сосредоточиться на коде, и генерируют его с избытком, - это ерунда)
В программировании на языке Java - Eclipse, и собственно ее кросс-платформенные инструменты
Как может человек считать себя программистом если не может, боится (Vim?), не хочет автоматизировать свою работу?
P.S Я не программист (не скажу почему). Я пользователь, и вы должны прислушиваться к моему мнению
Какой IDE? для какого языка? какие тело- и умодвижения она призвана упростить?
У меня вообще не складывается в голове тенденция исходящая от новичков: -"хочу научиться программировать, какую IDE выбрать?" Ответ прост как стеклышко - никакую.
К делу.
В области web-разработки (сервер localhost, firefox + plugins, vim)
В области системного программирования (Vim - только потому что им пользуются большинство кодеров, а все остальное не круто То что IDE мешают сосредоточиться на коде, и генерируют его с избытком, - это ерунда)
В программировании на языке Java - Eclipse, и собственно ее кросс-платформенные инструменты
Как может человек считать себя программистом если не может, боится (Vim?), не хочет автоматизировать свою работу?
P.S Я не программист (не скажу почему). Я пользователь, и вы должны прислушиваться к моему мнению
-
- Сообщения: 1341
- ОС: Arch Linux amd64
Re: IDE под Linux
язык программирования можно уточнить в треде (вы просто не перечислите все возможные языки в названии темы).
есть такое, но обычно быстро лечится =)
Я предпочитаю для таких дел (PHP, Python, Java) использовать NetBeans + сервер
Тут много всяких НО - какой язык, размер проекта и другие важные мелочи. К примеру, имхо, в IDE намного проще производить отладку и управлять структурой проекта.
С этим безусловно соглашусь.
"Холиварный" вопрос, но все-таки отвечу - мне намного удобнее пользоваться Emacs'ом.
Эту фразу надо разработчикам IDE/прочих редакторов говорить =)
-
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: IDE под Linux
ну и что? везде вроде-бы можно вешать макросы на хоткеи.
а мне всё равно не нравится.
хм.. зачем программистам прислушиваться к мнению НЕ программиста? Вот если бы вы сказали, чего вам не хватает в программах...
это как? sed?
пишите сами.
-
- Бывший модератор
- Сообщения: 5989
- ОС: OS X, openSuSE, ROSA, Debian
Re: IDE под Linux
ладно... Везде ли:
- возможность написания расширений для редактора на собственном(пусть и не очень удачном) языке, а так же на perl, python, ruby
- сотни уже существующих расширений
- хорошая встроенная документация, и сотни tips на все случаи жизни
- возможность повесить на хоткеи любую возможность редактора, которую придет в голову повесить на хоткеи... вплоть до результатов выполнения внешних команд
- поддержка подсветки синтаксиса для 520 языков
- наличие полноценных консольной и GUI версий для всех популярных платформ(в том или ином виде), то есть не зависимо от среды в которой вы работаете вам не придется менять своих привычек, ну или придется, но самую малость(да, некоторые штуки через ssh могут тормозить)
- проверка орфографии(по крайней мере русский/украинский/английский),
- нормальный поиск с поддержкой регекспов
- нормальная замена, sed-like, в том числе и над диапазоном, который в том числе может быть и просто выделен
- работающий indenting(не могу на русский перевести, сори) для популярных языков.
- сколько-нить полезный comletetion, да оно как правило не знает язык на котором вы пишите
- folding
- поддержка табов, поддержка нескольких "окон" в каждом табе
- поддержка (продвинутой) истории редактирования
- больше двух "буферов" обмена, в буфер обмена, кстати, можно класть и результаты выполнения внешних команд, и вообще переопределять их по разному(доступны в vim script как переменные)
- продвинутая безмышевая навигация по тексту, "продвинутая" - означает не только, и не сколько за счет стандартных клавиш типа стрелочки, pg up/pg down: в лево/право/верх/вниз ориентируясь на слово/символ/строку, с возможностью при желании указать количество требуемых перемещений.
- не знаю как точно описать ... продвинутые команды безмышевого редактирования. допустим находясь в любом положении на строке для того чтобы начать писать на следующей строке мы просто жмем o, на предыдущей O .. и так далее. Вот тут как раз преимущества перехода с режима на режим чувствуются
- преимущества перехода с режима на режим чувствуются и в режимах выделения(посимвольно/построчно/прямоугольник) - перешли в соответствующий режим и спокойно себе выделяем, а не играем в занимательную игру "удерживая клавишу шифт двигаем стрелочками".
- запись макросов на лету: под макросами, если что имеется ввиду не "повешать встроенную команду на хоткей", а как раз таки запись ваших действий в редакторе, чтобы потом их воспроизвести. То есть допустим у нас есть код, который мы хотим закоментить(есть несколько способов это сделать, это не самый быстрый): на одной из строчек жмем <Esc>qw^i<Esc>jq теперь для того чтобы закоментить какую-либо строку достаточно нажать просто <Esc>@w, чтобы закоментить пять строк: <Esc>5@w (Esc везде кроме того что стоит между qw и q опционален.
- все это без идиотского копания в менюшках для поиска нужного функционала
- и так далее
И это кстати, про vim без плагинов. Про тот же NerdTree, или вариации на тему snippets в TextMate, про настройку для конкретных языков ... можно говорить долго и отдельно.
-
- Сообщения: 127
- ОС: Gentoo, Win7
Re: IDE под Linux
Всё, что сказано dieselем про Vim, справедливо и для Emacs. Разве что собстенный язык расширений у Emacs лучше удался
-
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: IDE под Linux
есть. kate, mcedit
есть и язык(тоже кривой), и возможность исполнения команд оболочкой(а она и sed может, начните с #!/bin/sed )
diesel писал(а): ↑23.07.2009 02:46- не знаю как точно описать ... продвинутые команды безмышевого редактирования. допустим находясь в любом положении на строке для того чтобы начать писать на следующей строке мы просто жмем o, на предыдущей O .. и так далее. Вот тут как раз преимущества перехода с режима на режим чувствуются
вот это, наверное, самый важный плюс vi
CTRL+A в mcedit, в kate тоже конечно есть. про kdevelop и проч я вообще умолчу
есть 2 пути:
1)читать маны
2)тыкать в менюшки
в vi только 1й путь. Согласитесь, это - жирный минус для тех, кто привык к п2. Вам этого не понять, мне - тоже. Я знаю, что это как минимум непродуктивно, но...
плагинов конечно больше, да и функции более развитые.
но они далеко не уникальны.
ага. лично я там хоть что-то понимаю
-
- Бывший модератор
- Сообщения: 5989
- ОС: OS X, openSuSE, ROSA, Debian
Re: IDE под Linux
но даже в этом случае вы можете использовать vim, в конфигурации от Cream
часто пользуетесь? хоть где-нибудь
кстати, свой пример с комментами повторить в mcedit я не смог ) причина банальна: на клавиатуре нет "Home/End" а Fn+стрелочки которые настроены вместо - почему-то в mcedit работают неправильно.
Спасибо сказали:
-
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: IDE под Linux
в kdevelop использовал постоянно (что говорит скорее о нехватки в нём некоторых функций)
а вот в mcedit хотя такая возможность и есть, но что-то у меня (в Mandriva 2009) это приводила к зависанию mc.
ковырять дальше mc мне не хочется...
-
- Сообщения: 1445
- ОС: Debian Squeeze
Re: IDE под Linux
Сейчас есть precompiled headers, скорость компиляции у gcc выше, чем у борланд.
Это да. Я чисто для проверки этой теории был написал прогу. Так вот, версия, скомпилированная в Linux в несколько раз обскакала виндовую (mingw32) и MSVC++ 2008 (зато MSVC++ 2008 обскакал mingw32).
Насчет IDE - есть ли IDE с поддержкой CMake?
-
- Сообщения: 243
- ОС: Win7/Ubuntu 11.10
Re: IDE под Linux
Есть ли IDE, которые не поддерживает CMake? )) На самом деле в любой IDE можно собирать проект через CMake, он же генерирует Makefile или вообще файлы проектов под конкретную IDE. Для Emacs есть специальный режим для редактирования CMake файлов, для Eclipse есть какой-то плагин специальный даже.
-
- Сообщения: 1445
- ОС: Debian Squeeze
Re: IDE под Linux
Если имеется ввиду вручную написать CMakeLists.txt, то это и без IDE можно (тем же kate), а меня интересует, чтобы IDE, например, при добавлении нового файла в проект автоматически переделывала CMakeLists.txt. Или хотя бы можно было конвертировать файл проекта в CMakeLists.txt.
Среди IDE, которые я видел, только KDevelop так умел, но он почему-то зависал иногда.