代码之家  ›  专栏  ›  技术社区  ›  BlueBadger

我无法关闭最后一个圆括号并使用slime中的lisp模式将函数发送到repl

  •  1
  • BlueBadger  · 技术社区  · 16 年前

    这是一个非常简单的问题。我安装了Emacs22.2.1(来自Ubuntu(9.04)repo),并在他们的主页上下载了slime current。

    我按照粘液提供的说明操作,它可以工作。我可以开始粘液,并按预期使用它。

    但是,当我进入lisp模式(m-x lisp模式)时,我不能再与repl交互。我键入的内容不起作用,当我按Enter键时,光标只移动到下一行。

    有人能解决这个问题吗?

    编辑:

    关于我如何使用Emacs的问题。是的,我启动Emacs,然后用M-X粘液进入粘液。我读到,通过下一步使用m-x lisp模式进入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模式并不意味着简单地为slime启用lisp特性,那么我如何在slime中启用语法突出显示?

    编辑2:

    在评论中给出了答案。

    开始黏液,然后打开/创建一个新文件。这是使用lisp模式的缓冲区。

    函数被写入、突出显示并发送到repl。输出显示在底部。

    两者应该合作,而不是融合。

    3 回复  |  直到 16 年前
        1
  •  2
  •   Svante    16 年前

    移出注释:通常,您不会直接在repl缓冲区中写入大函数,而是将它们写入另一个缓冲区,并通过 C-c C-c . slime repl模式有自己的突出显示,但其用途不同:它以不同的颜色显示输入、输出和系统消息(在我的绿色-黑色设置中,它以绿色显示输入,以红色显示系统消息,以浅蓝色显示输出)。

        2
  •  2
  •   Trey Jackson    16 年前

    听起来你要进去了 lisp-mode 在有repl的缓冲区中,是吗?如果是这样的话,那可能就是你做错了什么。repl缓冲区可能有自己的模式。

    查看文档,与slime交互的方法(与大多数emacs的低级进程一样)是使用绑定来评估当前的sexp、区域或缓冲区。看到这个 page of the documentation . 该链接中的所有绑定都不是简单的 RET 关键——这让我相信你改变了repl缓冲区的模式。

    当然,更多的信息会有所帮助。

        3
  •  1
  •   dmitry_vk    16 年前

    当你做m-x黏液时,黏液开始并显示repl(带repl的缓冲区将处于黏液repl模式主模式)。这个slime repl模式驱动repl。

    根据描述,Lisp模式是“为除GNU Emacs Lisp之外的Lisp编辑Lisp代码的主要模式”。lisp模式用于编辑文件,而不是用于repl。 这是预期行为。

    相反,为什么要将repl切换到lisp模式?