LINUX.ORG.RU

Идеальное IDE для C и C++

 , ,


0

3

Ребят, возник такой вот вопрос.

Для GNU/Linux (и не только) есть огромное количество IDE-шек со своими плюшками, перделками и т.д. Но у каждой из них есть свои недостатки, проблемы, баги.

В итоге, что для вас является важным при выборе того или иного инструмента для программирования на C и C++?

★★★

Последнее исправление: cetjs2 (всего исправлений: 2)
Ответ на: комментарий от emulek

8 гигабайтные логи быстро кушает. Правда ридонли, что бы я там чет правил я не помню. Но это если там надо что то найти, «притом это что то не знаю что»(с). Если таки знаешь что ищешь лучше всё таки grep. А если в риалтайме надо то tail и grep. Они кстати даже под офтопиком есть(вместе с гитом идут, как вариант).

Но зачем скатываться всё таки к обсуждению редактора:) Как редактор вим уан оф зе бест.

pon4ik ★★★★★
()
Ответ на: комментарий от deep-purple

Та не, так абсолютно везде. В опенсурсах тоже. Даже если посмотреть код любой утилитки консольной, то без нормальной кодосмотрелки, ты будешь втыкать ощутимо дольше.

Та и как бы иде не только про редактирование кода.

Просто куча людей поначитались макконела, вдохновились, но в продакшне пока не потыкали ничего мало мальски большого. Либо они в какой то другой вселенной живут и я хочу к ним.

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

А всякие раскраски, подсказки, авто-подстановки и другие умные фичи мешают (мне).

раскраски выключаются :set syntax=no

подсказки? что это такое, и как ты это себе представляешь в терминале?

автоподстановки? Не дави на ^N.

и фич «умных» там нет, я их ненавижу.

emulek
()
Ответ на: комментарий от kachsheev

если прямо отвечать на вопрос

что для вас является важным при выборе того или иного инструмента для программирования на C и C++?

то самым важным является сомнение в том, что вообще есть такой инструмент, который способен отвечать изощренным потребностям.

Deleted
()
Ответ на: комментарий от beastie

unix хорошее ide, особенно пока ты гоняешь в рамках фреймворка именуемого unix way.

Но, некоторые инструментальные средства там слегка устарели, на мой вкус. Я бы таки хотел заместо grep'а рекурсивного иметь что нибудь основанное на шланге для поиска референсов. А если ещё и что то sed'о подобное сделать для правки, тогда вообще комунизм снова пришёл бы.

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

иде не только про редактирование кода

Да оно понятно, я вон так же как писали выше привык уже что вим только код, а запуск в другом месте, а грепы всякие в третьем. И тут же хоткеи то настроены, мышу вообще не трогаешь чтоб бегать по окнам, вкладкам, сплитам. А другие люди, да, при мне же работают во всяких идешках, дак еще некоторые под форточками сидят, и ничего - интегрируюсь я с ними вполне нормально, и в своем окружении совсем не медленнее работаю чем другие.

и я хочу к ним

Ну, это ж от тебя самого зависит. Всмысле свой мир ты сам вокруг себя построить можешь, ты ж линуксоид или хто? )

deep-purple ★★★★★
()
Ответ на: комментарий от emulek

подсказки? что это такое, и как ты это себе представляешь в терминале?

Есь какие-то плагины для вима, я их потыкал палочкой и не понравилось. У меня один плагин вообще только стоит - снипматэ, да и то я его редко юзаю.

deep-purple ★★★★★
()
Ответ на: комментарий от beastie

А всякие раскраски, подсказки, авто-подстановки и другие умные фичи мешают (мне).

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

Начнем с малого: нумерация строк, наверное, должна же присутствовать. Плюс нужно какое-то визуальное ограничение в 80 символов (или сделать это привычкой?). Какой минимум?

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от pon4ik

Я бы таки хотел заместо grep'а рекурсивного иметь что нибудь основанное на шланге для поиска референтов.

Не совсем разпарсил, но я вот довольно таки часто применяю

vi `grep whatever *.files`

А если ещё и что то sed'о подобное сделать для правки

На удивление, но ed. Его довольно таки тривиально можно скриптить.

В общем, да, если не отходить от unix-way, то всё будет чудно.

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

Find usages банальный

какой-же ты странный… Конечно есть

:%s/\s[^<]\(\w\+\)/ <li>\1<\/li>/gc
перевожу на русский:

1. найти пробельный символ

2. за ним должен быть любой, но не «<»

3. потом любая буква 1 или больше раз

4. строка замены: " <li>", потом пункт3, потом «</li>»

5. спросить y/n/a/q/l/^E/^Y

6. если сказано «y», заменить, и искать дальше

А твоё говно так умеет?

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

подсказки?

Да тот же sublime/atom — чипятаешь что-то, жмякакаешь Enter (или что там?), а эта зараза подставляет тебе, что она думает, что ты думаешь, вместо того что бы просто перевести строку.

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

У меня есть: нумерация, дефолтная раскраска, статусбар, табы, сплиты (гориз/верт), на все эти перемещения замаплены хоткеи (в основном комбинации со стрелочками), и все. Выкласть на пастыбин?

deep-purple ★★★★★
()
Ответ на: комментарий от Deleted

Всё хотел поинтересоваться, какие вообще тогда настройки используются?

Честно? Никакие. Вот мой весь .nexrc:

set autoindent
set ruler
set showmatch
set showmode
set verbose
set cedit=ESC
set filec=ESC
И больше мне не надо. Из них, даже всё, кроме autoindent убрать можно.

beastie ★★★★★
()
Последнее исправление: beastie (всего исправлений: 2)
Ответ на: комментарий от deep-purple

Выкласть. Мне просто хочется получить минимальный концептуальный конфиг, близкий к дефолтному.

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от pon4ik

Encapsulate field

можно пример?

rename

тоже пример давай

Но любая поделка размером хотя бы с geany, уже гораздо бодрее пилиться в ковыряле, умеющим сии штуки. А ceph например, ты заколебёшься грепать, я уж молчу про ынтырпайзный продакшн(не к ночи будь он упомянут).

понимаешь, какая штука… Я даже говняный php с лёгкостью «грёпал», в котором ООП не было, все функции везде видны, плюс ещё куча глобальных переменных, плюс Over9000 встроенных(vim меня порадовал — он знает всё встроенное в php, там без этого никак). Причём размер не имеет никакого значения, как и число файлов.

emulek
()
Ответ на: комментарий от Deleted

http://pastebin.com/yv8tBtAx

Ну и снипматэ отдельный плагин (просто закинут в директорию .vim) - этот по табу автокомплитит в контексте типа файла. Я даже какие-то снипеты ему туда добавлял парочку.

deep-purple ★★★★★
()
Ответ на: комментарий от deep-purple

Понимаешь в чём дело, я из своей идяхи, в 5 дистров с разными архитектурами могу собрать и задеплоить бинари + конфиг, и удалённо их поотлаживать например. Нажав, ммм, C-T, выбрав машинку и нажав F5. И настраивается сиё с нуля минут 10, при определённой привычке и сваренных тулчейнах. Или тест например прогнать.

Это как бы если отвлечься от навигации по коду :)

Я не вкоем случае, не хочу ругать чей то воркфлоу, просто я раньше пробовал делать так как ты описываешь, да и сейчас иногда делаю, ибо так удобней(иногда). Я даже думаю, что вполне осилил сии техники. Просто так я работаю ещё быстрее, особенно когда флоу устаканился, его можно отразить один раз в иде, и использовать 3 шотката для 70% случаев повседневного пинания кодебейза.

От терминала в случае с крестами(если это не гуй, а то для чего кресты лучше всего подходят, если вы понимаете о чём я;)), всё равно никуда не денешься. Но большинство задач решаются в контексте одной хрени.

Вот для чего вим был запилен. Что бы меньше переключать контекст, не тянуться к мыши, не лазать в шел погрепать, не тыкать лишний раз sed 's/foo/bar/g', допиши сам...

Нормальное иде, это то, которое позволяет по минимуму на него отвлекаться, как правильно заметил один из товарищей выше. При этом чем больше оно минимизирует переключение контекста, тем оно лучше.

pon4ik ★★★★★
()
Ответ на: комментарий от deep-purple

Любая ИДЕ только расслабляет, а не концентрирует.

нет. Я думаю только о коде, и более ни о чём. В vim Over9000 способов прогулок по коду, т.ч. я могу скакать как угодно, ну и развитая структура возвратов по скачкам, плюс закладки.

И да, забыл: все эти скачки и прочее(истории, макросы, состояние свёрток, ещё куча всего) сохраняется в файлах (сессии и представления). Т.ч. можно закрыть, а потом открыть файл через год. Ничего не изменится. Причём хранится не хрен знает где, а в простом текстовом файле, в формате vimrc.

А пыхомакака с ИДЕ

других не бывает.

emulek
()
Ответ на: комментарий от beastie

Тогда 2 глупых вопроса.

Первый - тогда ведь таб получается не пробелами и сразу на 8 символов. Так и используете?

Второй - всё-таки по поводу нумерации строк и длины строки в 80 (или другое кол-во символов). Компилятор же выдает мне сообщения, указывая на строку. А что касается длины строки - как её контролировать?

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от emulek

Ты говорил, что тебе не влом погуглить - самое время:)

Грепать то можно, просто выхлоп будет содержать кучу нерелевантного мусора, на остеивание которого, твоему мозгу всё равно понадобиться время(много или мало не важно) при прочих равных это будет дольше чем полноценный find usages. Так же верно и то, что вместо взятия символа, который тебя интересует, прямо из под курсора, одним нажатием клавиш, ты потратишь время на набор текста и сочинение регэкспа(пусть оно будет молниеносным, мы все верим, что ты очень, очень быстр) но тут ты его потратишь, а там нет.

Про sed та же фигня, плюс придётся за ним ревьювить, ничего ли ты лишнего не поседал, ведь все же ошибаются, не так ли? Просто машины делают это чуть реже, что тоже позволяет сэкономить время.

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

Меня сейчас закидают какакшками, но я не люблю форматирование пробелами. Только табы. (При желании и tabstop добавить можно.)

что касается длины строки - как её контролировать?

А это я не понял. Не писать длиннее 80-и символов.

Компиляторы умные. Даже в случае:

        printf("%s%s%s%s\n",
                whatever1,
                whatever2,
                whatever3,
                whatever4);
они укажут на нужную строчку.

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

В vim Over9000 способов...

Да, но я это не в контексте вима сказал, ибо говорят что он не иде. Убедись и читай выше почти всех. Да я собсно и не против такого мнения, поэтому так и написал «Любая ИДЕ»

все эти скачки и прочее

Дык, именно это мне и нравится, потому и пользуюсь.

других не бывает

Бывает, хотя очень редко.

deep-purple ★★★★★
()
Ответ на: комментарий от pon4ik

Правда ридонли

это не то. Я про редактирование.

Но зачем скатываться всё таки к обсуждению редактора

я про скорость говорил. Это единственное место, где я увидел как vim тормозит — правка здорового дампа mysql.

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

Ого, прогресс видимо не стоит на месте, а я безнадёжно отстал.

Можно мне этот же чеклист, с илюстрацией (хотя бы словесной), как тебе видиться покрытие этих пунктов, в горячё любимом мной редакторе? Которое превратит его в иде, и сбудется одна из моих самых влажных мечт(я совершенно серъёзно).

pon4ik ★★★★★
()
Ответ на: комментарий от deep-purple

Есь какие-то плагины для вима

эта срань занимает драгоценное место для кода.

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

Какое отношение здоровенные дампы mysql всё таки имеют к свойствам, превращающим vim в лучшее c++ ide? Наверное и такое же как и 8гб логи.

Как редактор, вим очень крут. Как штука которой можно много чего поправить прямо на сервере. Даже как навигатор по файловой системе :)

Но крестовое иде из него пока что можно слепить так себе.

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

На удивление, но ed. Его довольно таки тривиально можно скриптить.

можно. Но зачем, если есть sed?

emulek
()
Ответ на: комментарий от pon4ik

Нормальное иде...

И вот тут мы пришли к тому, что всетаки очень сильно влияет на рабочее окружение сам проект, а не личные пристрастия. Ну и там уже по накатанной получается, что далее попадаются либо такие-же проекты под «привычный» воркфлоу (ты даже меняя работу сознательно ищешь то, что лучше всего умеешь, подходишь по требованиям), либо проект всегда один и тот же годами.

deep-purple ★★★★★
()
Ответ на: комментарий от beastie

Да тот же sublime/atom — чипятаешь что-то, жмякакаешь Enter (или что там?), а эта зараза подставляет тебе, что она думает, что ты думаешь, вместо того что бы просто перевести строку.

фтопку.

emulek
()
Ответ на: комментарий от beastie

Не писать длиннее 80-и символов.

Я имел в виду количество символов текста в строке кода. У меня стоит

set colorcolumn=80
чтобы писать код, как указано здесь:

Each line of text in your code should be at most 80 characters long. We recognize that this rule is controversial, but so much existing code already adheres to it, and we feel that consistency is important.

Можно, конечно, волевым усилием контролировать длину текста и без всяких там визуальных настроек.

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)

* Возможность поставить приятную light-on-dark тему

* Логичные менюшки

* Поддержка систем сборки

* Чтобы не глючило

* Чтобы не было какой-нибудь типа «помогающей» неотключаемой возможности, которая на деле мешала бы мне (например определенный вид автоформатирования кода, который мне не нравится)

* Чтобы всякие go to definition, go to declaration, switch from header to definition, switch from definition to header работали

* Автодополнение

Честно говоря с убогостью всех существующих IDE для C++ я бы наверное и без адекватного автодополнения пережил, и даже невозможный привести к божескому виду внешний вид eclipse'а затерпел бы.

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

Только табы

Лично мне плевать, как скажут, так и сбацаем. Но очень сильно бесит когда в файлах есть пустышачные табы/пробелы или что еще хуже - смесь того и другого (фикс этой шляпы у меня даже замаплен на F3).

А так обычно начинаю гундеть типа: Ну, ёпт, должна же быть какая-то условленность, а кодсниферы всякие, ну где вы были когда надо было поставить защиту от дурака на коммит-пуш-деплой?

deep-purple ★★★★★
()
Ответ на: комментарий от deep-purple

Ну ясен пень оно должо уметь отражать твой флоу. И поволять работать в нём максимально эффективно.

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

Последнее утверждение звучит не очень юниксвейно на первый взгляд, но юникс это тоже иде, как метко заметил один товарисч, просто, по моим наблюдениям, некоторые функции там устарели/отсутсвуют. Хотя, и грядут, потому что до людей таки допирает. О чём можно судить по появлению шланга, и субпродуктов аля ycm и rtags, прост оно ещё не допиленно и по юзабилити уступает grep'u с sed'ом.

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

А можно поинтересоваться, это легаси, или есть какое то логическое обоснование?

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

Если это была попытка посоветовать eclipse для разработки на c++, то я выражаю вам своё полное фу.

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

По крайней мере, когда я его тыкал(года этак 3 назад) это было так. Или, что то кардинально поменялось?

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

set colorcolumn=80

Это ж от размера в кансолях - 80х24. Щас типа начали лепетать все чаще, мол, не актуально это уже, да где вы таких икранов маленьких видели и все такое, и давайте теперь 120 дадим, но с оговоркой на то, что 120 это «ну ваще, еще один и все, оверфлоу». Короче, все правильно, пиши под 80, ибо ну их нафик с этими идеями под баальшие мониторы. По мне так код «бритый» под 80-ку выглядит гораздо элегантнее, чем макаронины под 120.

deep-purple ★★★★★
()
Ответ на: комментарий от pon4ik

но тут ты его потратишь, а там нет.

всегда всё по разному, а твоё IDE не даёт тебе выбора. Ты думаешь, я ни когда не видел IDE?

Про sed та же фигня, плюс придётся за ним ревьювить

а твоё IDE никогда не ошибается, да? Увы, любая машина _всегда_ ошибается на том, что написано человеком. Даже если его загнали в стандарт. В сишечке есть удивительные вещи, о которых мы и представить не можем, как и создатели IDE. Но тем не менее, они соответствуют стандарту, и работают несмотря на безумность(компилятор ведь не может удивляться, ну и потом, ни компилятор, ни твоя IDE не удивляются UB, они просто заточены на то, что UB не бывает. А они есть).

emulek
()
Ответ на: комментарий от pon4ik

Это не была попытка посоветовать Eclipse+CDT. Я сам его 2 или 3 раза пробовал из-за того что другие советовали или из-за того, что видел, как они там что-то просто и быстро делали.

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

Ну вот мне нужен был профилировщик. Так пришлось все существующие изучать, чтобы получить нужное.

Deleted
()
Ответ на: комментарий от hlebushek

Но в итоге всегда блевал от интерфейса, CDT глючил, плевался от workspace'ов.

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

Меня сейчас закидают какакшками, но я не люблю форматирование

а мне похрен. Если я открою твой код, и буду его править, мой редактор сам разберётся, что ты любишь табы. И мои инденты тоже будут табами. А если-бы ты любил 7 пробелов, vim сделал-бы 7 пробелов.

PS: я, по старой памяти, тоже люблю табы.

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

Моё иде, даёт мне выбор:) Как минимум я могу им пользоваться а могу открыть за мгновение vim, который у меня конечно же приаттачен к vim серверу. Так что не надо тут про то, кто кому даёт.

И да, таки отлаженный алгоритм, ошибается всё таки чуть реже чем жалкие людишки.

Опять же, чего тебе покоя не даёт рефакторинг? Ну вот ошибётся инструмент, я же посмотрю код перед коммитом(или ты настолько крут, что так не делаешь?!), поправлю.

Ещё есть компилятор, статический анализатор, hellgrind, vallgrind. Которые милостливо сообщат мне о любом откровенном тупняке типа UB, или чего то подозрительно напоминающего дэдлок, или ещё какую утечку ресурсов. Не всегда конечно же, но и мы не лыком шиты, мы прост, тратим времени меньше на всякое, когда инструмент выбираем по своим потребностям.

pon4ik ★★★★★
()
Ответ на: комментарий от deep-purple

Мну только, недавно осознал весь глубинный смысл сей пиктограммы :)

pon4ik ★★★★★
()
Ответ на: комментарий от deep-purple

ибо говорят что он не иде.

честно? Мне насрать на то, что говорят.

Убедись и читай выше почти всех.

почти все считают, что Ф.Киркоров хорошо поёт. 95%. И что? Я должен тоже восхищаться, да? Если я сказал «vim это ide», то для меня ide это vim в т.ч. К.О.

Я был-бы дураком, если-бы считал, что «vim это ide», И «vim не является одним из всех ide».

Бывает, хотя очень редко.

я иногда не брезгую, да.

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