这是一个非常简单的问题。我安装了Emacs 22.2.1(来自Ubuntu(9.04)repo,我从主页上的repo下载了Slime-current。
我按照粘液提供的说明进行操作。我可以开始使用粘液并按预期使用它。
但是,当我进入lisp-mode(M-x lisp-mode)时,我无法再与REPL交互。我输入的任何内容都没有,当我按下回车键时,光标只会移动到下一行。
有没有人对此有解决方法?
修改
关于我如何使用Emacs的问题。是的,我启动Emacs,然后用M-x粘液输入粘液。我读到我可以通过下一步使用M-x lisp-mode进入lisp模式来获得正确的语法高亮。
它确实提供了语法高亮,但如下所述,它用于编辑文本文件,而不是与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-mode并不是简单地为slime启用lisp功能,那么我如何在slime中启用语法高亮?
编辑2:
答案在评论中提供。
启动slime然后打开/创建要使用的新文件。这是打算使用lisp-mode的缓冲区。
该函数被写入,突出显示并发送到REPL。输出显示在底部。
这两个人应该合作,而不是整合。
答案 0 :(得分:2)
听起来你在具有REPL的缓冲区中输入lisp-mode
,是吗?如果是这样的话,那可能就是你做错了。 REPL缓冲区可能有自己的模式。
查看文档,与Slime交互的方式(与大多数Emacs的劣质流程一样)是使用评估当前sexp或区域或缓冲区的绑定。见page of the documentation。该链接中的任何绑定都不是简单的RET
键 - 这使我相信您更改了REPL缓冲区的模式。
当然,更多信息会有所帮助。
答案 1 :(得分:2)
移出注释:通常,您不会直接在REPL缓冲区中编写大函数,而是将它们写入另一个缓冲区并通过C-c C-c
将它们发送到REPL。 slime-repl-mode有自己的突出显示,但有不同的用途:它以不同的颜色显示输入,输出和系统消息(在我的绿色黑色设置中,它显示绿色输入,红色系统消息,并以浅蓝色输出。
答案 2 :(得分:1)
当你做M-x史莱姆时,Slime启动并显示REPL(带有REPL的缓冲区将处于slime-repl-mode主模式。这个slime-repl-mode驱动REPL。
lisp-mode,根据其描述,是“除了GNU Emacs Lisp之外编辑Lisp的Lisp代码的主要模式”。 Lisp-mode用于编辑文件,而不是用于REPL。 这是预期的行为。
相反,为什么要将REPL切换到lisp模式?