Я не могу закрыть последнюю скобку и отправить свою функцию в REPL с помощью lisp-mode в Slime - PullRequest
1 голос
/ 20 мая 2009

Это очень простой вопрос. Я установил Emacs 22.2.1 (из репозитория Ubuntu (9.04)) и загрузил Slime-current из репозитория с их домашней страницы.

Я следовал инструкциям, прилагаемым к слизи, и она работает. Я могу начать слизь и использовать ее, как и ожидалось.

Однако, когда я вхожу в режим lisp (M-x lisp-mode), я больше не могу взаимодействовать с REPL. Ничего, что я набираю, не работает, курсор просто перемещается на следующую строку, когда я нажимаю ввод.

У кого-нибудь есть исправление для этого?

Edit:

По вопросу о том, как я использую Emacs. Да, я запускаю Emacs, затем вводлю слизь с M-x слизью. Я прочитал, что могу получить правильную подсветку синтаксиса при следующем входе в режим lisp с помощью M-x lisp-mode.

Он обеспечивал подсветку синтаксиса, но, как указано ниже, он предназначен для редактирования текстовых файлов, не взаимодействуя с REPL.

Я также недавно прочитал, что размещение следующего в моем файле .emacs включит подсветку синтаксиса (это не сработало).

; Syntax Highlighting
(global-font-lock-mode 1)

; Enable slime
(add-to-list 'load-path "/home/doug/Software/slime/")  ; your SLIME directory
(setq inferior-lisp-program "/home/doug/Software/ccl/ccl") ; your Lisp system
(require 'slime)
(slime-setup)

; Enable psvn
(require 'psvn)

Так что я думаю, мой вопрос нуждается в пересмотре. Поскольку режим lisp не предназначен для простого включения функций lisp для слизи, то как мне включить подсветку синтаксиса в слизи?

Редактировать 2:

Ответ был предоставлен в комментарии.

Запустите slime, затем откройте / создайте новый файл для работы. Это буфер, в котором предполагается использовать lisp-режим.

Функция записывается, выделяется и отправляется в REPL. Выход появляется внизу.

Они должны сотрудничать, а не объединяться.

Ответы [ 3 ]

2 голосов
/ 20 мая 2009

Удалено из комментариев: обычно вы не пишете большие функции непосредственно в буфере REPL, а записываете их в другой буфер и отправляете их в REPL через C-c C-c. Режим slime-repl имеет свою собственную подсветку, но с другой целью: он отображает входные, выходные и системные сообщения разными цветами (в моей настройке «зеленый на черном» он отображает ввод зеленым, системные сообщения - красным, и вывод светло-голубым).

2 голосов
/ 20 мая 2009

Звучит так, как будто вы вводите lisp-mode в буфер с REPL, да? Если это так, то, вероятно, вы ошибаетесь. Буфер REPL, вероятно, имеет свой собственный режим.

Глядя на документацию, способ взаимодействия со Slime (как в большинстве низших процессов Emacs) заключается в использовании привязок, которые оценивают текущий пол, регион или буфер. Смотрите эту страницу документации . Ни одна из привязок в этой ссылке не является простой клавишей RET, и это заставляет меня поверить, что вы изменили режим буфера REPL.

Дополнительная информация, конечно, поможет.

1 голос
/ 20 мая 2009

Когда вы выполняете M-x slime, запускается Slime и показывает REPL (буфер с REPL будет в основном режиме slime-repl-mode. Этот режим slime-repl запускает REPL.

lisp-mode, согласно его описанию, является «Основным режимом для редактирования кода на Лиспе для Лиспса, кроме GNU Emacs Lisp». Lisp-режим предназначен для редактирования файлов, а не для REPL. Это предполагаемое поведение.

Скорее, почему вы хотите переключить REPL в режим lisp?

...