Что не так с моей настройкой emacs / slime (компиляция и загрузка / eval не работают)?

Я могу запустить emacs и запустить Slime (с M-x slime). На этом этапе я получаю REPL в буфере inferior-lisp и могу запустить там lisp. Но когда я открываю код lisp в другом буфере, ни одна из слизистых не работает (C-x C-e, C-c C-k и т. Д.), И я продолжаю видеть это в буфере сообщений (с увеличивающимся числом счетчиков):

слизистая связь: Не подключено.

Опрос /var/folders/B9/B9B5J15dH+aNt5J5gkROEk+++TI/-Tmp-/slime.3202 .. (Прервать с помощью `M-x slime-abort-connection '.) [69 раз]

Это заставляет меня думать, что slime не подключается к правильному интерпретатору lisp, но, поскольку я новичок в emacs и lisp, я застрял здесь. Моя установка:


person arnab    schedule 29.12.2010    source источник
comment
Кстати, я попытался удалить свои настройки, но это все еще не сработало. Все, что у меня оставалось, это: (setq inferior-lisp-program / usr / local / bin / clisp) (add-to-list 'load-path ~ / code / cabin / lisp / slime /) (require' slime) (slime -настраивать)   -  person arnab    schedule 29.12.2010


Ответы (2)


Вот что я сделал, чтобы заставить Common Lisp и Clojure работать в одной установке Emacs, вместе с отличным стартовым комплектом emacs. Это не позволит вам использовать оба одновременно (вам нужно перезапустить Emacs, чтобы переключиться с CL на Clojure или наоборот)

Я считаю, что версия SLIME в ELPA старая, но работает для Clojure. Более новая версия SLIME не будет работать на Clojure. Вдобавок эта версия SLIME кажется урезанной (нет swank-loader.el?) И не будет работать с Common Lisp.

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

С новым Emacs (без конфигурации вообще, так что переместите что-нибудь .emacs в другое место) установите ELPA:

http://tromey.com/elpa/install.html

Изнутри Emacs установите пакеты «slime» и «slime-repl». (M-x package-list-packages, затем C-s slime, затем i для выбора и x для установки)

Переместите файлы в ~/.emacs.d/elpa/slime-20100404 и ~/.emacs.d/elpa/slime-repl-20100404 в новый каталог, например ~/hacking/lisp/elpa-slime.

Выкинь установку ELPA: $ rm -rf .emacs.d.

Теперь клонируйте стартовый комплект emacs и переместите его на .emacs.d. Я сделал это только со свежей копией из Github Technomancy, так что попробуйте сначала, если у вас возникнут проблемы.

Получите последнюю версию SLIME с CVS:

cvs -d :pserver:anonymous:[email protected]:/project/slime/cvsroot co cvs-slime

Я не думаю, что OS X поставляется с установленной CVS, поэтому вам нужно будет установить ее с Macports, Homebrew или чего-то еще.

Я вставляю cvs-slime в ~/hacking/lisp.

Надеюсь, очевидно, что делает Emacs Lisp ниже:

(defun slime-common-lisp ()
  (interactive)
  (setq inferior-lisp-program "/usr/local/bin/sbcl") ; your Common Lisp impl
  (add-to-list 'load-path "~/hacking/lisp/cvs-slime/")  ; your SLIME from CVS directory
  (require 'slime)
  (slime-setup '(slime-repl))
  (slime))

(defun slime-clojure ()
  (interactive)
  (add-to-list 'load-path "~/hacking/lisp/elpa-slime")
  (require 'slime)
  (slime-setup '(slime-repl))
  (slime-connect "localhost" 4005))

Для Clojure вам нужно будет запустить среду выполнения Clojure и swank-clojure на порту 4005, я думаю, что использование Leiningen является одобренным методом:

Создайте новый проект:

$ lein new project
$ cd project

In project.clj:

(defproject newclj "1.0.0-SNAPSHOT"
    :description "FIXME: write"
    :dependencies [[org.clojure/clojure "1.2.0"]
                   [org.clojure/clojure-contrib "1.2.0"]]
    :dev-dependencies [[swank-clojure "1.2.1"]])

Потом:

$ lein deps
$ lein swank

Отредактировано для добавления:

Если вы обнаружите, что Paredit в SLIME REPL не работает при использовании этой настройки, проверьте это: http://www.emacswiki.org/emacs/ParEdit#toc3

По крайней мере, еще одна потенциальная проблема заключается в том, что, AFAICT, если вы откроете исходный файл Common Lisp и затем запустите SLIME, вы не сможете отправлять формы из первого буфера в буфер SLIME. Так что откройте буфер SLIME перед открытием любых исходных файлов Common Lisp, и он должен работать. Похоже, это не относится к Clojure.

Использованная литература:

настройка emacs как для clojure, так и для обычной шепелявки с помощью slime-fancy (slime-autodoc)

https://github.com/technomancy/swank-clojure/issues/closed#issue/31/comment/544166

person michiakig    schedule 29.12.2010
comment
Таким образом, эта настройка работала для Clojure со слизью, но не для интеграции clisp slime. Почему-то, когда я говорю M-x slime-common-lisp, он все еще использует слизь от elpa. Как мне это исправить? - person arnab; 29.12.2010
comment
Попробуйте перезапустить Emacs перед использованием M-x slime-common-lisp. Мастер Emacs, вероятно, сможет сказать, как выгрузить ELPA SLIME перед загрузкой CVS, но я не знаю, как это сделать. - person michiakig; 29.12.2010
comment
Да, я перезапустил emacs до того, как попробовал M-x slime-common-lisp. Однако ESK загружает elpa / slime * раньше, чем мой slime-cvs, и, следовательно, проблема. Я тоже попробую спросить по вопросам esk. Спасибо. - person arnab; 29.12.2010
comment
Доложить! Я боролся с этим и, возможно, не делал так тщательно, как следовало бы. Мне кажется, это работает, но, может быть, я сделал что-то еще. - person michiakig; 29.12.2010
comment
Хорошо, я взглянул на свою настройку сегодня вечером после работы и обновил свой ответ. Что я сделал иначе, так это загрузил ELPA-версию SLIME, а затем поместил ее где-нибудь отдельно, не управляемой ELPA, которая поставляется с emacs-starter-kit. Это довольно хрупкая настройка, поскольку, если swank-clojure требует более новой версии SLIME и обновляется ELPA, вам придется это исправить, поэтому потребуется небольшая няня. С другой стороны, я читал, что ELPA игнорируется до следующего крупного выпуска Emacs, так что какое-то время это может быть безопасно. Удачи и дайте мне знать, работает ли это для вас! - person michiakig; 30.12.2010
comment
Потрясающий! Это прекрасно работает! Я готов жить с болью обновлений, чтобы иметь рабочую среду. Кстати, я собираюсь вскоре опубликовать все эти шаги в блоге, чтобы я мог легко их повторить. Добавлю вам атрибуцию! Спасибо! - person arnab; 30.12.2010
comment
Пожалуйста! В прошлом месяце я написал об этом сообщение в блоге, но настройка была немного другой (т.е. неправильной). Я обновил его вчера вечером < / а>. Конечно, не стесняйтесь писать свои собственные статьи, чем больше будет вести дневник на Lisp, тем лучше! - person michiakig; 30.12.2010

Если вы правильно установили slime в своей системе, лучше используйте sbcl и добавьте следующую строку в свой ~/.emacs (setq inferior-lisp-program "/usr/bin/sbcl")

/ usr / bin / sbcl может отличаться в зависимости от вашего пути установки sbcl.

person neymarsabin    schedule 07.03.2016