问题标签 [slime]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
emacs - 在 Vista 上的 slime 下启动 sbcl 时出错
我无法让 SBCL 在粘液下启动。我把事情搞砸了,我不知道如何恢复。这工作得很好,直到我...
通过 asdf 加载包时出现问题。此时我开始调试 SBCL 提供的 asdf.lisp 以查看出现了什么问题。我所做的唯一更改是放置一个(中断),一旦我找出问题所在,我就将其删除。一切都很好,直到我下次尝试启动 SBCL。
然后我得到一个华丽的编译错误,说 asdf.fasl 比 asdf.lisp 文件旧。这对我来说很有意义,所以我重新编译了 asdf.fasl。我现在得到的输出是:
所以它没有在我重新编译的 asdf 中找到它需要的一些东西。为了解决这个问题,我已经完全卸载并重新安装了 SBCL。没有喜悦。我的 .sbclrc 中也没有任何内容。
更新:在查看 asdf.lisp 源代码时,缺少的函数肯定在文件中。我认为阻止它们编译的原因是:
我的lisp知识目前还不足以在环境中编译asdf文件来触发上面的条件编译语句。
emacs - 如何将 clojure 源文件连接到 Emacs 上正在运行的 clojure repl?
我目前正在向 Tomcat 容器中的现有 J2EE webapp 添加功能,并且正在使用 Clojure 编写我的添加。我的设置很简单:我只是添加对 clojure 生成的静态方法的调用,并从 clojure 端编写所有艰苦的工作。构建过程包括编译 clojure 代码 ( lein uberjar
),然后在类路径中使用该 jar 编译 java 代码。
在 webapp init 中,我调用了一个生成的类,该类使用(swank/start-repl)
. 我希望能够将我的 Aquamacs 粘液连接到该服务器,并从那里进行交互工作(到目前为止,我不会尝试任何需要 Java 端重新编译的东西)。但是我有一个我不太了解的情况。如果我执行 a \M-x slime-connect
,我会收到一个 REPL 提示(在被告知没有劣质 lisp 进程之后,我认为这没关系,因为劣质 lisp 进程在 emacs 控制之外运行)。我可以完美地评估表单,我什至可以检查诸如my.own.namespace/my-var
. 但是,如果我访问一个包含已编译 clojure 代码的文件,我似乎无法让 slime 将其识别为它的来源。考虑一个简单的 clojure 文件:
假设这是编译并包含在 webapp 加载的 uberjar 中,我可以 eval/inspect my.namespace/*secret*
。但是如果我尝试在代码缓冲区内进行评估,Slime 会认为我在user
命名空间中(这甚至可以说得通!)。但现在我只剩下一个工作选项——我必须评估——文件中的所有表格!\C-c \C-l
(加载源文件)不会做任何事情 - 显然只是返回 nil 并且不输出任何其他内容。编译一切似乎就是这样做的——它会编译,如果找到错误就会显示错误,但不会改变我的命名空间。最奇怪的是\C-~
(同步包和目录),它使用 Common Lisp 完成了我想要的,但在这里它永久冻结了 clojure REPL。
始终可以选择切换到 REPL,键入(in-ns 'my.namespace)
,然后一切正常。但是当 clojure 文件的数量越来越多时,这根本不够实用(因为代码缓冲区的命名空间不会自动更改!)
那么,我的问题是,我是否缺少基本的命令/配置——或者是否有明显的原因导致这种行为发生。
clojure - 'lein swank' 等价于其他带有 emacs/slime 的 Lisp/Scheme 实现
我一直在使用 emacs/slime 来编码 lisp,但是使用 Clojure 我发现了 'lein swank'。我必须说它非常有用,因为我可以连接到运行 clojure 的服务器。
其他 Lisp 实现怎么样?哪些 Lisp 实现在 Clojure 中提供了相当于“lein swank”的功能?我的意思是,是否有任何其他提供服务器连接的 Lisp 实现,以便我使用“Mx slime-connect”,而不仅仅是“Mx slime”?
emacs - 为什么 clojure 在没有任何设置的情况下为我的 Aquamacs 以“Mx slime”开头?
我的 Mac 上运行着 Aquamacs。
我为 Aquamacs 安装了 ESK,它在 ~/.emacs.d/elpa 安装了 ELPA。使用 ELPA,我安装了 clojure-mode/clojure-est-mode/slime/slime-repl/swank-clojure。
问题是当我运行“Mx slime”时,clojure 就会运行。为什么是这样?我很好奇,因为我的 .emacs 甚至 /Users/smcho/Library/Preferences/Aquamacs Emacs/{Preferences.el,customizations.el} 中都没有任何粘液设置。我的意思是,我没有 (setq lower-lisp-program "clojure") 或其他东西。
或者,它与我的“swank-clojure”安装有关吗?我在inferior-lisp缓冲区中看到了类似的东西。
emacs - “swank-clojure”到底做了什么,我们有“swank-SOMETHING_ELSE”吗?
我肤浅的理解是“swank-clojure”使“Mx slime-connect”成为可能。我的意思是,它提供了与 clojure 服务器的连接,例如“lein swank”。我的理解正确吗?如果不是,swank的目的是什么?
那么,对于其他类似 lisp 的实现,是否有任何“swank-SOMETHING_ELSE”?例如,swank-clisp?
我是否需要 'swank-clojure' 才能将 SLIME/Clojure 与 'Mx slime' 一起使用?
添加
我发现这个链接非常有用。
lisp - 变量 *、+ 和 / 是否绑定到 SLIME 或 Clozure CL 中的最近输入?
当我发现这个时,我在 SLIME(连接了一个 Clozure REPL)中搞砸了:
看起来变量 +、* 和 / 都绑定到最近输入的某些变体,+ 是输入本身,* 是评估该输入的结果,而 / 是包含在列表中的结果。
这是正确的吗?谁对此负责,SLIME 还是 Clozure?我在 SLIME 手册中找不到任何内容。
谢谢!
emacs - SLIME 是否有快捷键可以在 slime 模式下注释 Lisp 代码块?
我宁愿不必手动为每一行添加分号。
眼镜:
Aquamacs 2.1 (Emacs 23.2)
史莱姆 2010-11-16
MacPorts CLISP 2.49
Mac OS X 10.6.4
MacBook Pro 5,1
namespaces - 在 clojure 中,如何从命名空间中取消定义 var?
在 clojure 中,我有这样的行来定义默认值:
我现在决定将这些类型的值形式化为一个配置单元,并且我想取消定义该值*http-port*
,以便我可以找到仍然引用该值的位置并将它们更改为使用新值。换句话说,我正在通过将值移动到不同的位置来进行重构。
我一直这样做的方式是退出粘液并尝试重新启动粘液会话。在 maven 的编译阶段,会发现类似这样的错误,我可以一次找到并修复一个参考。然后我修复错误,冲洗并重复。这显然令人沮丧。
连接到粘液会话时我将如何执行此操作?
emacs - 当我的 Common Lisp 代码语法稍有错误时,SLIME/SWANK 崩溃
如果我省略了一个结束括号,或者使用了错误的字符串转义字符,或者考虑了 Haskell,就会发生这种情况:
1) Minibuffer 错误信息
2) SLIME 停止工作。
3)inferior-lisp错误信息:
使用 Mx slime 重新启动 SLIME,然后使用 Cc Ck 重新编译我的代码会产生相同的错误。所以是的,我尝试将其关闭然后再打开。
眼镜:
Aquamacs 2.1 (Emacs 23.2)
Aquamacs 史莱姆
MacPorts CLISP 2.49
Mac OS X 10.6.4
MacBook Pro 5,1