LINUX.ORG.RU

slime


0

0

Кажись установил сабж на емакс, как мне им теперь пользоваться?

строки compile серого цвета и никера не скомпилировать ничего.

Хотя пункт SLIME появился в верхней панельки.

anonymous

>Хотя пункт SLIME появился в верхней панельки.

Это у тебя slime-mode только появилась, но CL, видимо, не запустился. 
Как уже сказали, надо набрать M-x slime, но при этом надо настроить, 
указав, собственно, какой CL загружать. Например, clisp:

Это в ~/.emacs

(setq inferior-lisp-program "/usr/bin/clisp -q -K full")
(setq slime-net-coding-system 'utf-8-unix)
(slime-setup)

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

Спасибо :)

Только вот ещё маааааленький вопросик - как сохранять результаты работы, то что у меня сохраняется даже объявленные функции не помнит :( и slime при этом сам не запускается(при загрузке)

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

>Только вот ещё маааааленький вопросик - как сохранять результаты работы, то что у меня сохраняется даже объявленные функции не помнит :(

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

>и slime при этом сам не запускается(при загрузке)

И это тоже не понял. При чьей загрузке?

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

>при загрузке сохранённой работы в смысле

Что есть сохраненная работа? Файл *.lisp?

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

>Э-э-э, если честно, то не понял, о чем речь. По какому алгоритму происходит твоя работа в SLIME? Вот запускаешь ты его и что дальше делаешь?

Дальше пишу (defun hello-world() (format t "Hello World")) По книге Common Lisp все делаю.

Сохраняю эту работу с расширением .lisp

То есть после загрузки оной я при вводе (hello-world) должен поулчить надпись Hello World

Но к сожалению меня при этом выбрасывает из компилятора, т.к. эта функция становится для него неведанной, после загрузки файла(того самого с расширением lisp) Приходиться нажимать M - x вводить slime и заново все объявлять.

>И это тоже не понял. При чьей загрузке?

slime при загрузке файла *.lisp

>Что есть сохраненная работа? Файл *.lisp?

да.

П.С. Посоветованный в книге(Practical Common Lisp) lisp in box у меня не компилиться, вываливается ошибка при команде make, дистр OpenSuSE 11.0

clisp поставил сам, без одной библиотеки, может из за этого все не получается?

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

>Но к сожалению меня при этом выбрасывает из компилятора, т.к. эта функция становится для него неведанной, после загрузки файла(того самого с расширением lisp) Приходиться нажимать M - x вводить slime и заново все объявлять.

Как-то ты просто не ознакомился с архитектурой SLIME. На самом деле, SLIME состоит из двух частей: Emacs-овская половинка, которая и называется собственно slime и половинка CL, которая называется swank. Эти две половинки общаются через сокет. Если ты загружаешь в Emacs файл *.lisp, то загружается только емаксовская половинка slime-mode. А swank загружается только тогда, когда ты делаешь M-x slime (swank загружается из slime.el). Без swank у тебя "исполнитель" программы не загружен и все запросы через сокет от slime-mode не выполняются. Поэтому зашел в emacs, выполнил M-x slime и открываешь свой файл. Путей несколько. Можешь открыть в emacs свой файл при помощи C-x C-f , потом выполнить C-c C-k (slime-compile-and-load-file) и продолжить работу. Загружать файл можно еще C-c C-l (slime-load-file), но при этом файл не компилируется. Простое открытие файла в emacs (C-x C-f) не означает его автоматической загрузки в swank).

Можно также сохранять работу в новое ядро, но тогда при загрузке надо указать, что грузить его. Но это уже сам.

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

>slime при загрузке файла *.lisp 

можно поставить хук на *.lisp. Например, так:
via http://menzies.us/csx72/?105

(setq inferior-lisp-program "/usr/bin/sbcl --noinform")
(add-to-list 'load-path "/usr/share/common-lisp/source/slime/") ;; this path is WVU CSEE specific
(setq slime-path "/usr/share/common-lisp/source/slime/")        ;; this path is WVU CSEE specific
(require 'slime)
(slime-autodoc-mode)
(slime-setup)
(add-hook 'lisp-mode-hook (lambda ()  
	(slime-mode t) 
	(local-set-key "\r" 'newline-and-indent)
	(setq lisp-indent-function 'common-lisp-indent-function)
	(setq indent-tabs-mode nil)))

(global-set-key "\C-cs" 'slime-selector)

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.