GNU Emacs. Часть 3. Emacs, как среда разработки.
- Подробности
- Опубликовано 13.03.2016 14:37
Emacs - это, в первую очередь, IDE, и именно как среда разработки он приобрел наибольшую популярность в сообществе. С ним вы можете запросто переключаться между интерпретаторами разных языков одной командой, держать их одновременно в разных буферах, динамически проверять работоспособность кусков кода без полной компиляции и прочее-прочее.
Конкретно для Lisp, Emacs - это лучшая IDE, которую только можно придумать (ведь и сам Emacs написан на диалекте Lisp, и самим разработчиком Lisp очень любим). Давайте же сделаем из Emacs IDE для Common Lisp. Для этого нам понадобится SBCL - реализация Common Lisp с компилятором и интерператором, и Slime - IDE для Lisp под Emacs. SBCL есть в репозиториях большинства *nix-систем (в противном случае можно взять его отсюда - http://www.sbcl.org/platform-table.html) - установите, и запускайте в терминале по sbcl.
Перед нами - REPL (Read-eval-print loop), IDE, в которой уже можно работать с Lisp. Теперь вернемся в Emacs и установим slime. Простейший способ сделать это - найти в старой-доброй MELPA (здесь вы могли заметить пакет skype - да, и он тоже есть!):
Теперь откроем ~/.emacs и добавим строки:
(add-to-list 'load-path "~/.emacs.d/elpa/slime-20150221.645/") ;; путь к Slime
(setq inferior-lisp-program "/usr/bin/sbcl") ;; путь к SBCL
(require 'slime)
(slime-setup)
Сохраним, перезапустим, сделаем M-x slime, и вуаля:
Перед нами простенькая и удобная IDE под Common Lisp, с расстановкой отступов, подсветкой скобок и синтаксиса. Как и всё в Emacs, её также можно настроить и расширить под свои нужды. Больше об этом:
http://filonenko-mikhail.blogspot.com/2011/01/lisp.html
http://habrahabr.ru/post/131418/
Что ж, здесь мы рассмотрели всё что нужно, чтобы не потеряться в Emacs, в начале пути. Но в этом нет и сотой доли всего, на что способен Emacs! Правкой конфига и написанием собственных функций на Elisp, можно менять поведение окон, автоматизировать действия, создавать сочетания клавиш и много чего ещё - если перечислять и вдаваться в дебри синтаксиса Elisp, то статья выйдет огромной, и отнюдь не ознакомительной. Поэтому, ограничимся ссылками по теме:
Подробная документация:
http://www.gnu.org/software/emacs/
http://alexott.net/ru/writings/altlinux-emacs/
Статьи о расширении функционала:
http://habrahabr.ru/post/126228/
http://habrahabr.ru/post/190790/
http://habrahabr.ru/post/248663/
http://habrahabr.ru/post/188376/
http://habrahabr.ru/post/39564/
http://habrahabr.ru/post/73872/