LINUX.ORG.RU

emacs & clisp


0

0

Пользую связку: emacs+slime+sbcl. Как запустить clisp ф-цию с помощью
горячих клавиш (например, назначенных в ~/.emacs или ещё где,
slime ?)? Интерактивно: что-то типа M-x ? Или clisp ф-цию из elisp ф-ции ? Так же выводить список clisp ф-ций, как в emacs'e ?
anonymous

Под clisp подразумевается CLISP или Common Lisp? Если последнее, хотя и для первого тоже сойдет, то предположу, что делать это стоит посредством того же swank, который в slime. А вообще интересно, для чего это все нужно, и нельзя ли обойтись Emacs'овским cl...

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

> Под clisp подразумевается CLISP или Common Lisp?

Я имел ввиду Common Lisp. А чем он отличается от CLISP ? Я думал это
одно и то же....

> для чего это все нужно ?

Ну например, хотелось бы выводить список Common Lisp ф-ций, как в
emacs'e по M-x. Горячие клавиши - чтоб не набирать руками ф-цию, хотя
первое (список) гораздо интереснее.

> и нельзя ли обойтись Emacs'овским cl...

Emacs'овский cl имеется ввиду elisp ? Ну вроде у Common возможностей
больше, многии ф-ции cffi пользуют ну и т.д.

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

> Под clisp подразумевается CLISP или Common Lisp?

Вот вопрос ? У меня пакет dev-lisp/clisp не установлен. Только sbcl,
slime, common-lisp-controller, emacs. Компилю из sbcl... ???

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

>> В Емаксе не CL, а EL.

>Через внешние модули есть и CL, и даже CLOS

Да! Накорми Силосом антилопу Гну!

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

>> Под clisp подразумевается CLISP или Common Lisp?

> Я имел ввиду Common Lisp. А чем он отличается от CLISP ? Я думал это одно и то же....

CLISP --- одна из реализаций Common Lisp, выше анонимус кинул ссылку, правда обозвав его компилятором, коим он не совсем является.

>> для чего это все нужно ?

> Ну например, хотелось бы выводить список Common Lisp ф-ций, как в emacs'e по M-x. Горячие клавиши - чтоб не набирать руками ф-цию, хотя первое (список) гораздо интереснее.

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

> Emacs'овский cl имеется ввиду elisp ? Ну вроде у Common возможностей больше, многии ф-ции cffi пользуют ну и т.д.

http://www.gnu.org/software/emacs/manual/html_node/cl/index.html#Top

stassats ★★★★
()

Не совсем понял вопроса. Если просто запустить функцию, то это делается через REPL. В любом окне, находящемся в режиме SLIME жмешь C-c C-z, и у тебя сразу REPL появляется. Там и автокомплит, и хистори есть.

Если ты хочешь запускать программу с горячей клавиши в emacs, то вот есть функция slime-interactive-eval, которая аргументом принимает string. То есть к горячей комбинации привязать, скажем, (slime-interactive-eval "(my-package:my-function my-arguments)"). SLIME это дело передаст в CL и выполнит.

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

> то вот есть функция slime-interactive-eval

Т.е. с помощъю её можно и cl ф-ции из elisp ф-ций запускать ?

А можно ли (и как ?) наоборот elisp ф-цию из cl вызвать ? Я это к тому, что, запуская cl ф-цию, может появиться новый буфер (например, об ошибке), а буферами управляет emacs (elisp). Значит slime как-то может пользовать elisp ф-ции (например при C-c M-i вызывается буфер с дополнениями) ? Т.е., если короче :), нужно из cl ф-ций управлять бУферами, записывать в них что-нить и т.д., то ли с помощью slime (типа как в slime-fuzzy-complete-symbol) или elisp'a.

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

Если честно, я с трудом понимаю цель. Какая-то очень хитровымученная задача по управлению Emacs из CL? :)

Но ответ на вопрос есть. SLIME, если быть корректным -- это только Emacs-side часть. В Common Lisp же загружается другая часть, которая называется swank. Эти две части общаются через сокет. Вызов slime-interactive-eval передает указанную строчку в swank через сокет, swank ее затем и выполняет уже у себя в CL. Общение через сокет происходит и в обратную сторону --- от swank в SLIME.

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