GNU Emacs. Часть 3. Emacs, как среда разработки.

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.

Emacs

 

Перед нами - REPL (Read-eval-print loop), IDE, в которой уже можно работать с Lisp. Теперь вернемся в Emacs и установим slime. Простейший способ сделать это - найти в старой-доброй MELPA (здесь вы могли заметить пакет skype - да, и он тоже есть!):

Emacs

 

Теперь откроем ~/.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, и вуаля:

Emacs

 

Перед нами простенькая и удобная 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/

 

 

 

 

 

Компьютерный портал "Компаньон" © 2016.
В случае перепечатки материалов обязательна прямая ссылка на сайт cs-companion.ru.