Форум программистов, компьютерный форум CyberForum.ru

Среда программирования Emacs - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.71
Gungala
 Аватар для Gungala
43 / 15 / 1
Регистрация: 18.08.2013
Сообщений: 79
18.08.2013, 18:02     Среда программирования Emacs #1
Всем доброе время суток. Я не давно начал изучать программирование на языке С++ и стараюсь писать длинные и сложные программы, но в таких программах как Microsoft Visual C++, Code Blocks и других, мне не удобно работать, решил перейти на Emacs, но не могу понять как там компилировать, нужно создать какой-то make файл, если есть такой добрый человек который знает как это сделать, прошу объяснить или ссылку там скинуть
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11816 / 6795 / 769
Регистрация: 27.09.2012
Сообщений: 16,867
Записей в блоге: 2
Завершенные тесты: 1
19.08.2013, 15:45     Среда программирования Emacs #21
Цитата Сообщение от kvadro Посмотреть сообщение
emacs это кроссплатформенно
Code::Blocks тоже
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kamre
126 / 130 / 4
Регистрация: 25.12.2011
Сообщений: 438
19.08.2013, 16:02     Среда программирования Emacs #22
Цитата Сообщение от Gungala Посмотреть сообщение
но в emacs'е работать удобней - его можно полностью под себя настроить и благодаря этому процесс написания программы становится быстрее
Сколько раз уже видел эту фразу про "его можно полностью под себя настроить", но как только доходит до вопросов по настройке самой базовой функциональности вроде подсветки кода и навигации по коду - никаких работающих решений не приводится. Про настройку работы с отладчиком, чтобы было также удобно пользоваться как в MSVC, вообще обычно сразу пишут, что отладчик не нужен и удобная интеграция с ним тем более.

Есть здесь на форуме гуру Emacs, которые помогут настроить эти базовые вещи, необходимые для работы над с++ проектами?

Самые простые вопросы по настройке Emacs:
  1. как настроить навигацию по С++ коду?
  2. как настроить семантическую расцветку кода?
  3. как сделать так, чтобы символ под курсором можно было подсветить во всем буфере?

Под 1 имеется ввиду корректная навигация с полным учетом семантики языка, т.е. всякие примитивные вещи вроде ctags не подходят. Шаблоны/макросы/перегрузки должны учитываться, и переход к определению символа из места его использования должен просто работать. Также под навигацией имеется ввиду и поиск references (мест использования символа) с учетом семантики, т.е. find-grep здесь явно не подходит.

В пункте 2 нужна возможность задавать разный текстовый стиль для разных семантических элементов. Например, разные стили для локальных переменных и членов класса. Для static элементов мне нужен курсив, для виртуальных функций также свой стиль.

Под 3 имеется ввиду некий аналог поиска references, который запускается автоматически при изменении положения курсора. При этом все references в текущем буфере должны подсвечиваться и должна быть возможность перехода по этим references.

Как мне "полностью под себя настроить" Emacs?
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
19.08.2013, 16:04     Среда программирования Emacs #23
Цитата Сообщение от kamre Посмотреть сообщение
Про настройку работы с отладчиком, чтобы было также удобно пользоваться как в MSVC, вообще обычно сразу пишут, что отладчик не нужен и удобная интеграция с ним тем более.
чем gdb mode не нравится?
Цитата Сообщение от kamre Посмотреть сообщение
вроде подсветки кода
чем минор моды, которые собсно и обеспечивают подсветку не подходят
Цитата Сообщение от kamre Посмотреть сообщение
Также под навигацией имеется ввиду и поиск references (мест использования символа) с учетом семантики, т.е. find-grep здесь явно не подходит.
ecb/ebrowse/ctags/etags/gtags/cscope итд
kamre
126 / 130 / 4
Регистрация: 25.12.2011
Сообщений: 438
19.08.2013, 16:45     Среда программирования Emacs #24
Цитата Сообщение от alex_x_x Посмотреть сообщение
чем gdb mode не нравится?
А как в нем смотреть сложные вложенные структуры данных? Вроде таких или таких.

Цитата Сообщение от alex_x_x Посмотреть сообщение
чем минор моды, которые собсно и обеспечивают подсветку не подходят
Не подходят тем, что не позволяют мне настроить так, как я это описал выше. Если позволяют, то расскажите как их нужно настроить для C++, может быть я чего-то упускаю.

Цитата Сообщение от alex_x_x Посмотреть сообщение
ecb/ebrowse/ctags/etags/gtags/cscope итд
Ни какой из этих инструментов не учитывает семантику языка C++. Или же расскажите как их нужно настроить для C++, может быть я чего-то упускаю.

P.S. Набор всех этих инструментов и "костылей", которые можно прикрутить к emacs я вроде знаю. Но как с ними заставить emacs делать то, что мне нужно, не понимаю и документации с пошаговой настройкой в интернете не нахожу...
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
19.08.2013, 17:02     Среда программирования Emacs #25
Цитата Сообщение от kamre Посмотреть сообщение
А как в нем смотреть сложные вложенные структуры данных? Вроде таких или таких.
Если честно, то мне за свой опыт редко приходится настолько "плотно" работать с отладчиком. А в особо тяжелых случаях проблема редко бывает связана со "сложными структурами данных". То есть в простых случаях хватает обычного print в консоли. В тяжелых не хватает только отладчика в принципе.
Я это к тому, что на практике высказывания в духе "в MSVC самый крутой дебаггер и хз как на линуксе без него программировать вообще" произносят быдлокодеры, которые невнимательно пишут код, а позже из-за этой невнимательности часами просиживают с отладчиком. И да, я не спорю, что в MSVC самый крутой отладчик, но его возможности в 99% случаев не нужны. И это не говоря про то, что TDD еще больше уменьшает необходимость отладчика.
Цитата Сообщение от kamre Посмотреть сообщение
Ни какой из этих инструментов не учитывает семантику языка C++. Или же расскажите как их нужно настроить для C++, может быть я чего-то упускаю.
Программирование через Ctrl+Space, конечно, весьма занимательное занятие, но опять же, что еще нужно кроме банального автокомплита и сниппетов для продуктивной работы?
Единственное, что приходит в голову, так это какие-нибудь средства рефакторинга - в духе переименования класса или публичной функции. Тот рефакторинг, что распространяется на весь проект, а не локальную область видимости. В подобных случаях, простые редакторы, конечно, проигрывают IDE, но это уже другая история.
kamre
126 / 130 / 4
Регистрация: 25.12.2011
Сообщений: 438
19.08.2013, 17:17     Среда программирования Emacs #26
Цитата Сообщение от fasked Посмотреть сообщение
Я это к тому, что на практике высказывания в духе "в MSVC самый крутой дебаггер и хз как на линуксе без него программировать вообще" произносят быдлокодеры, которые невнимательно пишут код, а позже из-за этой невнимательности часами просиживают с отладчиком.
Вот уже и песни про не нужность отладчика и быдлокодеров начались Мне также не часто нужны возможности отладчика в MSVC, но когда я решил залезть в чужой код с отладчиком, то мне нужны все удобства MSVC, которых я не нахожу в Emacs/консоли.

Цитата Сообщение от fasked Посмотреть сообщение
Программирование через Ctrl+Space, конечно, весьма занимательное занятие, но опять же, что еще нужно кроме банального автокомплита и сниппетов для продуктивной работы?
А причем здесь "программирование через Ctrl+Space"? Я вообще ничего не спрашивал про то, как настраивать intellisense в Emacs (худо-бедно решается через внешний "костыль" clang_complete), мне в первую очередь нужна удобная навигация по коду и хорошая семантическая подсветка. А в Emacs для C++ я этого не нахожу. Когда приходится работать с огромной кодовой базой, написанной кучей людей, и разбираться со связями между разными частями кода, удобная навигация позволяет гораздо эффективнее всем этим заниматься.

Цитата Сообщение от fasked Посмотреть сообщение
это уже другая история
Вот можно подробнее про другую историю, особенно с учетом фразы "его можно полностью под себя настроить"?
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
19.08.2013, 17:30     Среда программирования Emacs #27
Цитата Сообщение от kamre Посмотреть сообщение
Вот уже и песни про не нужность отладчика и быдлокодеров начались
Это не песня, а жизненное наблюдение, и ничего личного в этом не было.
Цитата Сообщение от kamre Посмотреть сообщение
но когда я решил залезть в чужой код с отладчиком, то мне нужны все удобства MSVC, которых я не нахожу в Emacs/консоли
Согласен, чужой плохой код часто является причиной головной боли. Но тут можно задуматься о том, почему подобный код вообще попадает "в продакшн".
Цитата Сообщение от kamre Посмотреть сообщение
Когда приходится работать с огромной кодовой базой, написанной кучей людей, и разбираться со связями между разными частями кода, удобная навигация позволяет гораздо эффективнее всем этим заниматься
В первую очередь помогать должно понимание архитектуры проекта, а не удобная навигация. В хорошем проекте после прочтения high level design интуитивно становится ясно куда и зачем ходить.
Цитата Сообщение от kamre Посмотреть сообщение
Вот можно подробнее про другую историю, особенно с учетом фразы "его можно полностью под себя настроить"?
Заметьте, не я это предложил сказал. Я вообще emacs не переношу.
Однако мне доводилось править код в таких местах, куда не то, что MSVS не встанет в силу используемой платформы, а вообще какой-либо GUI отсутствует. Поэтому консольный инструментарий совсем отвергать нельзя.
kamre
126 / 130 / 4
Регистрация: 25.12.2011
Сообщений: 438
19.08.2013, 17:45     Среда программирования Emacs #28
Цитата Сообщение от fasked Посмотреть сообщение
Согласен, чужой плохой код часто является причиной головной боли. Но тут можно задуматься о том, почему подобный код вообще попадает "в продакшн".
Попадает скорее всего потому, что как-то да работает, текущие задачи решает. А предложение выбросить 10-20Мб исходников и переписать их так, чтобы все было идеально, на работе не воспримут серьезно. Поэтому приходится работать с тем, что есть и стараться делать это максимально эффективными средствами.

Цитата Сообщение от fasked Посмотреть сообщение
В хорошем проекте после прочтения high level design интуитивно становится ясно куда и зачем ходить.
А в идеальном проекте вообще все идеально. Не всегда имеется такая документация по "high level design", особенно в актуальном виде и со всеми деталями.

Цитата Сообщение от fasked Посмотреть сообщение
Я вообще emacs не переношу.
Как текстовый редактор он вполне нормальный, но если мне нужно будет редактировать текст, а не код на языке программирования, то я лучше возьму что-то попроще, например, Sublime.

P.S. хотелось бы больше про сам Emacs и его настройку под мои скромные потребности почитать, а не холивары про "раз этого нет, то оно не нужно" разводить...
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
19.08.2013, 18:14     Среда программирования Emacs #29
[quote="kamre;4964350"]А как в нем смотреть сложные вложенные структуры данных? Вроде таких или таких./quote]
разварачиванием типов занимаются питоновские плагины gdb
в емаксе это все по факту подхватывается
Цитата Сообщение от kamre Посмотреть сообщение
Ни какой из этих инструментов не учитывает семантику языка C++. Или же расскажите как их нужно настроить для C++, может быть я чего-то упускаю.
есть cedit - все из коробки
вопросы кастамизации отдельных библиотек - уже следующая стадия

Цитата Сообщение от kamre Посмотреть сообщение
Не подходят тем, что не позволяют мне настроить так, как я это описал выше. Если позволяют, то расскажите как их нужно настроить для C++, может быть я чего-то упускаю.
через customize face
либо интерактивною, либо вручную (как например http://stackoverflow.com/questions/7...-0-endif-block)
я честно говоря кастомил только indention, поэтому про подсветку нужно гуглить
ninja2
 Аватар для ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
19.08.2013, 20:25     Среда программирования Emacs #30
emacs - это реально костыль, там даже строчки не пронумерованы и хз как эту нумерацию включить, приходилось вручную считать в кокой строчке ошибка. От визуалстудио это мега среда, все удобства и код посвечивается и если ошибка, то кликнул по строчке и попал в место где ошибка, плюс подсказки. Не нарадуюсь просто. Нашо нада разбираться по пол дня в настройках самого редактора время терять на это, тем более команды не так как в нормальных редакторах копировать ctr c, вставить ctr v, вырезать ctrl x, а там левые комбинации, в нем поработаешь так месяц и привыкнешь, а потом в нормальных редакторах таких как ворд или еще чо нить будешь путаться.

Пусть те кому жалко потратится на визуалстудио и работают в нем, а я сразу определил, что он убог и смысла нету разбираться в нем. Когото удивить? Да мне оно не нужно.
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
19.08.2013, 20:38     Среда программирования Emacs #31
Цитата Сообщение от ninja2 Посмотреть сообщение
emacs - это реально костыль, там даже строчки не пронумерованы и хз как эту нумерацию включить, приходилось вручную считать в кокой строчке ошибка.
nlinum
насчет вручную строчки считать - M-g-g кто-то отменял?)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.08.2013, 13:01     Среда программирования Emacs
Еще ссылки по теме:

C++ Автодополнения кода в Emacs
Среда программирования C++
Среда для визуального программирования C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Gungala
 Аватар для Gungala
43 / 15 / 1
Регистрация: 18.08.2013
Сообщений: 79
24.08.2013, 13:01  [ТС]     Среда программирования Emacs #32
Цитата Сообщение от kamre Посмотреть сообщение
Сколько раз уже видел эту фразу про "его можно полностью под себя настроить", но как только доходит до вопросов по настройке самой базовой функциональности вроде подсветки кода и навигации по коду - никаких работающих решений не приводится. Про настройку работы с отладчиком, чтобы было также удобно пользоваться как в MSVC, вообще обычно сразу пишут, что отладчик не нужен и удобная интеграция с ним тем более.

Есть здесь на форуме гуру Emacs, которые помогут настроить эти базовые вещи, необходимые для работы над с++ проектами?

Самые простые вопросы по настройке Emacs:
  1. как настроить навигацию по С++ коду?
  2. как настроить семантическую расцветку кода?
  3. как сделать так, чтобы символ под курсором можно было подсветить во всем буфере?

Под 1 имеется ввиду корректная навигация с полным учетом семантики языка, т.е. всякие примитивные вещи вроде ctags не подходят. Шаблоны/макросы/перегрузки должны учитываться, и переход к определению символа из места его использования должен просто работать. Также под навигацией имеется ввиду и поиск references (мест использования символа) с учетом семантики, т.е. find-grep здесь явно не подходит.

В пункте 2 нужна возможность задавать разный текстовый стиль для разных семантических элементов. Например, разные стили для локальных переменных и членов класса. Для static элементов мне нужен курсив, для виртуальных функций также свой стиль.

Под 3 имеется ввиду некий аналог поиска references, который запускается автоматически при изменении положения курсора. При этом все references в текущем буфере должны подсвечиваться и должна быть возможность перехода по этим references.

Как мне "полностью под себя настроить" Emacs?
Очень убедительно
Yandex
Объявления
24.08.2013, 13:01     Среда программирования Emacs
Ответ Создать тему
Опции темы

Текущее время: 02:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru