SLIME в Emacs

MNK> Підкажіть (натякніть) як в Emacs встановити (налаштувати?) SLIME mode.

у файл ініціалізації (C-x-f .emacs, якщо в тебе конкретно Emacs) пишеш щось таке:

(add-to-list 'load-path "/шлях/куди/розпакував/slime/") (add-to-list 'load-path "/шлях/куди/розпакував/slime/contrib") >(require 'slime) (slime-setup)

* якщо ставив SLIME з пакета (наприклад, у Debian), шляхи писати не потрібно

* у slime-setup можна вказати якісь додаткові можливості завантажувати, наприклад: (slime-setup' (slime-fancy)) завантажить основні модулі на кшталт автодоповнення і т.д.

* вказати який лисп запускати можна так: (setq inferior-lisp-program "sbcl")

* корисні налаштування: (paren-set-mode 'blink-paren); підсвічування дужок;;; правильна індентація (setq lisp-indent-function 'common-lisp-indent-function)

(setq common-lisp-hyperspec-root "file:///C:/TEXTS/hyperspec/HyperSpec/") (setq common-lisp-hyperspec-symbol-table "C:/TEXTS/hyperspec /HyperSpec/Data/Map_Sym.txt") ;; інакше буде посилатися на інтернет

* Підтримка не-англійських символів - не знаю, може в Emacs працює з коробки, в XEmacs потрібно налаштовувати.

(add-hook 'slime-mode-hook '(lambda() (define-key slime-repl-mode-map [f12] 'slime-complete-symbol))))

(add-hook 'slime-repl-mode-hook '(lambda() (define-key slime-repl-mode-map [f12] 'slime-complete-symbol))))

Привіт, Alex та Aleksandr, дякую за відповідь по Slime!

Довго не міг зрозуміти, в якому форматі вказувати path, в * Messages * після старту прочитав ("D:\Program Files\emacs-22.2\bin\emacs.exe")

Потім у * scratch * (print load-path) C-x C-e - і виправив формат. Довго шукав, де init-file .emacs Скористався порадоюна http://www.gnu.org/software/emacs/windows/Installing-Emacs.html#Installing-Emacs (insert (getenv "HOME")) - знайшов у C:\Documents and Settings\UserName\Application Data\.emacs.d\init.el

Пробував різні варіанти init.el, працює ось цей:

(Add-to-list 'load-path "D:/Program Files/emacs-22.2/slime") (add-to-list 'load-path "D:/Program Files/emacs-22.2/slime/ contrib") (Add-to-list 'load-path "D:/Program Files/emacs-22.2/slime/doc") (require 'slime) (slime-setup)

Але доводиться вручну M-x slime-mode Як би автоматизувати запуск slime-mode?

Якщо набрати M-x slime, то "apply: Searching for program: no such file or directory, lisp" Що їй не подобається?

Repl запускаю так: M-x slime-repl-mode Якщо набрати M-x slime-repl, то "slime-connection: Not connected"

З'являються меню SLIME та REPL, але REPL-запрошення немає.

Чи правильно я роблю? Де підкрутити?

MNK> Пробував різні варіанти init.el, працює ось цей:

а ось був би у тебе лінукс, все працювало б із коробки :)

MNK> Але доводиться вручну M-x slime-mode MNK> Як автоматизувати запуск slime-mode?

взагалі-то slime-setup і так автоматизує включення slime-mode для всіх файлів .lisp і т.д.: (2)

у тебе файл спочатку визначається в lisp-mode? Загалом, покажи який режим воно пише спочатку і який після slime-mode

MNK> Якщо набрати M-x slime, то MNK> "apply: Searching for program: немає такого файлу або directory, lisp" MNK> Що їй не подобається?

* вказати який лисп запускати можна так: (setq inferior-lisp-program "sbcl")

там має бути шлях до реалізації лиспа, яку ти збираєшся використовувати (CLISP?),такий, щоб воно його знайшло - тобто, можливо, повний шлях.

Так, у мене крім багато претензій до вини. 1с не йде, шкода, а то б, а я б. :)

Який? .el? Коли відкриваю init.el, з'являється пункт меню Emacs-Lisp (При переході в *scratch* пункту меню Emacs-Lisp немає.)

M-x slime - не знаходить Lisp: apply: Searching for program: немає такого файлу або directory, lisp"

(print inferior-lisp-program) C-x C-e "lisp" "lisp"

Пробував поставити SBCL - вдома запускається, на роботі, на потужнішому.

вище, за замовчуванням: (print inferior-lisp-program) C-x C-e "lisp"

Я ніякого Lisp'а, наївний, не ставив більше, сподівався на Emacs Lisp. А що, потрібно? Куди, в яку папку? Яку папку цього Lisp вказати в -program "папка")? (setq inferior-lisp-program "папка") прописати в init.el?

Який можна використовувати для Win XP?

Михайло ЗИ. Дивно спостерігати, як у Emacs можна змінювати функціональність на 2 роки, без перекомпіляції.

Як налаштувати копі-пасті через С-с, С-v (С-м в українському регістрі) натякніть, плз!

??>> а ось був би у тебе лінукс, все працювало б із коробки :) MNK> Так, у мене крім багато претензій до вини. MNK> 1с не йде, шкода, а то б, а я б. :)

Так ніхто не заважає використовувати одночасно - установи vmware server, завантажу готову вірт. машину з лінуксом і користуй, я так працюю, наприклад. Тільки на комп'ютері бажано пам'яті хоча б 1 GB, на 512 вже буде не зовсім комфортно.

??>> у тебе файл спочатку визначається в lisp-mode? MNK> Який? .el? MNK> Коли відкриваю init.el, з'являється пункт меню Emacs-Lisp

ні, .el саме Emacs-Lisp і має писати. файли Common Lispзазвичай називають .lisp або .cl, slime-mode для них повинен автоматично встановлюватися.

MNK> Пробував поставити SBCL - вдома запускається, на роботі, на потужнішому MNK> компе - ні:

під віндою із безкоштовних реалізацій рекомендується CLISP або ECL. CLISP популярніше, в ECL є підтримка багатопоточності та можливість легкої інтеграції з C.

він за замовчуванням намагається виділити собі безперервний шматок пам'яті в 512 MB. Можна спробувати стримати апетит опцією dynamic-space-size, наприклад:

sbcl --dynamic-space-size 256

це буде 256 МБ. можна зменшити до 64.

MNK> вище, за замовчуванням: MNK> (print inferior-lisp-program) C-x C-e MNK> "lisp"

MNK> Я ніякого Lisp'а, наївний, не ставив більше, сподівався на Emacs MNK> Lisp. А що потрібно?

Ну як би так. Emacs Lisp радикально відрізняється від Common Lisp (наприклад, відсутністю лексичних замикань та ГО) і присутній в Emacs без жодного SLIME.

MNK> Куди, до якої папки?

в будь-яку, тільки бажано щоб у назві не було пробілів і українських букв :)

MNK> Яку папку цього Lisp'а вказати в (setq inferior-lisp-program MNK> "папка")? (setq inferior-lisp-program "папка") прописати в init.el?

угу, тільки не папку, а шлях до виконуваного файлу. Якщо він у тебе прописаний в PATH, то просто clisp, sbcl або що там. Якщо ні (а так швидше за все і буде), щось таке :

(setq inferior-lisp-program "h:\lisp\ecl\ecl.exe")

загалом, спробуй його в консолі абсолютним шляхом запустити, як вийде - то і в inferior-lisp-program пиши.

MNK> Який можна використовувати для Win XP?

CLISP, ECL, SBCL (через жопу), GCL (не рекомендується), ABCL (на любителя -працює через Java).

є також урізані версії комерційних реалізацій: Lispworks, Allegro CL, Corman Lisp. вони йдуть зі своїм IDE, але можна і через Emacs запустити.

MNK> Як налаштувати копі-пасті через С-с, С-v (С-м в українському регістрі) MNK> натякніть, плз!