LINUX.ORG.RU

emacs ide для c

 , , ,


2

2

Иногда пишу небольшие программы на С, большое ide заводить для этого, наверное, нет смысла. Хочу попробовать emacs для этой цели. Нашёл это руководство. Много примеров и возможность скачать готовый emacs.d, протестировать, а потом выбрать те возможности что нужны.

Начал читать руководство и составлять свои файлы настроек. Пройдя по руководству я получил такой файл init.el

(require 'package)
(add-to-list 'package-archives
       '("melpa" . "http://melpa.milkbox.net/packages/") t)

(add-hook 'c-mode-common-hook
    (lambda ()
      (when (derived-mode-p 'c-mode 'c++-mode 'java-mode 'asm-mode)
  (ggtags-mode 1))))


(add-hook 'dired-mode-hook 'ggtags-mode)

(setq ido-enable-flex-matching t)
(setq ido-everywhere t)
(ido-mode 1)

Melpa работает, но Ido и ggtags приходится включать вручную, мне казалось что должно включаться само везде.

Я подумал, что это я что-то сделал не так и, удалив всё, сделал.

git clone https://github.com/tuhdo/emacs-c-ide-demo.git ~/.emacs.d
И рассчитывал что всё должно было установится и работать само, ведь автор написал:

I added an Emacs repository that is properly configured for demonstration purpose. You can clone and play with it and you can ignore all the Elisp code for setting up throughout the guide:

Но нет, не заработало. Я полез в init.el, увидел функцию install-packages, попробовал вызвать её через М-х, но тщетно. В общем, объясните, пожалуйста что я делаю не так.

Melpa работает, но Ido и ggtags приходится включать вручную, мне казалось что должно включаться само везде.

Добавь (package-initialize) после настройки package-archives.

theNamelessOne ★★★★★
()

Думал увидеть что-то Си специфичное, но это какие-то ошметки конфига.

Я полез в init.el, увидел функцию install-packages, попробовал вызвать её через М-х, но тщетно. В общем, объясните, пожалуйста что я делаю не так.

M-x package-install

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

Если собираешься хранить .emacs.d в VCS или просто бэкапить, то может быть полезно использовать ещё и Cask вместе с pallet.

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

Машина осталась на работе, попробую. Дома почему-то всё работает. Чтобы не создавать ещё одну тему - что посоветуете, ggtags или helm? Может быть что-то ещё к тому что демонстрирует автор мануала из моего первого сообщения?

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

Хочу попробовать emacs для этой цели.

Geany не рассматривал?

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

El-get позволяет опакетить любой проект с гитхаба, в нем также собраны рецепты с emacswiki. Можно сборку любого пакета кастомизировать под себя или просто задействовать фазы сборки, например, чтобы пакет пропатчить.

Есть qelpa

Не гуглится. Elpa? Дык это, с ним будет доступна только маленькая толика полезных пакетов.

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

что посоветуете, ggtags или helm

Это как бы ортогональные вещи. helm это просто вариант интерфейса для более удобного поиска вещей, т.е. примерно как ido, но идея немного другая. Есть heml-gtags, типа плагина к helm который заменяет стандартный интерфейс gtags. Например когда нужно найти референсы символа gtags показывает их в отдельном буфере, как grep или occur, а helm-gtags будет выводить их в своём helm-окне со всеми плюшками (поиск, меню действий и т.д.)

Может быть что-то ещё к тому что демонстрирует автор мануала из моего первого сообщения?

highlight-symbol-mode и helm-swoop (если будешь использовать helm).

Кроме того обрати внимание на imenu.

no-such-file ★★★★★
()
Последнее исправление: no-such-file (всего исправлений: 1)

Попробуй rtags. Там есть всё что нужно кроме отладчика. Отладчик отдельно прикрутишь.

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

ido или helm?

На вкус и цвет фломастеры разные. Если коротко, то ido это просто стандартный метод набора команд, расширенный на файлы, буферы и т.п. сущности, плюс более удобный и компактный автокомплит. В helm же немного другая идея - это набор совмещенный с поиском по сущностям, т.е. там нет автокомплита - ты должен просто выбрать вариант из найденного. Вообще выбирать между helm и ido не обязательно, можно использовать оба параллельно, но лично я использую helm для всего.

no-such-file ★★★★★
()
Последнее исправление: no-such-file (всего исправлений: 2)
Ответ на: комментарий от iVS

El-get позволяет опакетить любой проект с гитхаба, в нем также собраны рецепты с emacswiki.

quelpa позволяет из любого проекта с гитхаба (да и с емаксвики, да) запилить пакет для стандартной пакетной системы.

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

пытался перейти на helm, местами он несет чушь

Для меня самой болью было то, что при нажатии по привычке на tab вместо автокомплита выскакивает меню действий. Очень напрягало поначалу.

no-such-file ★★★★★
()
Ответ на: комментарий от lazyklimm

quelpa позволяет из любого проекта с гитхаба

Как я понял, не с любого, а только из тех, что есть в MELPA. У MELPA, похоже, система сборки пакетов примитивная, и тот же emacs-chess они не осилили.

(да и с емаксвики, да)

Неа, не любой. Найди мне этот -> essh.el.

Оба вышеозначенных пакета можно поставить из El-get.

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

Как я понял, не с любого, а только из тех, что есть в MELPA.

что есть в MELPA и так уже есть в MELPA, нафига с ним ещё как-то извращаться?

Найди мне этот -> essh.el.

зачем найди? берёшь и прописываешь что-то вроде

(use-package essh
  :ensure nil
  :quelpa
  (essh :fetcher wiki :files ("essh.el")))
lazyklimm ★★★★★
()
11 марта 2017 г.
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.