我正在尝试使用CVS(2009-01-05)的粘液,但一直收到这个错误:
LOAD: A file with name
/usr/share/common-lisp/source/slime/swank-loader.lisp does not exist
我把我的.emacs剥离到了:
(setq inferior-lisp-program "/usr/bin/clisp")
(add-to-list 'load-path "/home/ssm/lisp/slime/")
(require 'slime)
(slime-setup)
Run Code Online (Sandbox Code Playgroud)
我已经删除了我的〜/ .slime目录,以'emacs -q'开头并且对上面的代码进行了评估,但是当我运行slime(通过Mx slime)时我一直收到LOAD错误.有关如何解决此错误的任何想法?
FWIW,我试图通过apt-get安装slime,但我也一直在收到关于cl-swank被破坏的错误.那是一个完全不同的故事.
我按照这个非常有用的指南来设置这个开发环境.运行emacs.bat时,我在Emacs中收到以下错误:
文件错误:无法打开加载文件,clojure-auto
不幸的是,我对Clojure和Emacs都是全新的,所以任何有助于确定从哪里开始寻找都会有所帮助.
另外,作为旁注,指南的最后一步是:
使用emacs.bat文件启动Emacs.然后,只需键入"Mx slime",REPL就会出现,然后你就可以了.
根据Emacs文档,Mx将是Meta key + x.但是,目前还不清楚Windows中的Meta键.它谈到控制,但那将是C + x,所以我认为它是Shift.我也试过M +!认为这是一个shell命令,但没有运气.也许有人可以在评论中证实.
更新:来自评论中的dfa:"meta is Alt"有效.谢谢.
更新: Rayne非常有用的信息:
如果你的emacs经验继续走错路,不要放弃Clojure.对于Eclipse的IDEA Clojure-dev总是有La Clojure,我个人最喜欢的是NetBeans的Enclojure.
感谢Project Euler,我最近陷入了长时间运行的计算,我想知道如何中止评估并返回到REPL提示符.我正在运行Emacs 的标准Clojure Box版本.我尝试了明显的REPL>中断Lisp进程和Slime>中断命令,但都没有终止执行并返回我的REPL提示符.
我使用SBCL与粘液,并具有以下代码:
(swank::eval-in-emacs
'(with-current-buffer (slime-repl-buffer)
(insert (propertize "foo" 'font-lock-face '(:foreground "red")))))
(print "here is some text")
Run Code Online (Sandbox Code Playgroud)
一般来说,如果我尝试执行带有swank::前缀的任何东西,emacs会给出一个安全错误,这个特殊的告诉我需要设置slime-enable-evaluate-in-emacs为true.这个值在哪里?我一直无法找到粘液或swank配置.&设置文件.非常感谢.
虽然我在任何地方都设置了UTF-8(在我的lein项目中,slime-lisp组自定义,Emacs缓冲区本身......),我在尝试运行代码时不断收到此错误(def beta "?"):
Coding system iso-latin-1-unix not suitable [...]
Run Code Online (Sandbox Code Playgroud)
例如,仅在Emacs中发生,而不是在lein repl从命令行运行时发生.
可能是什么原因造成的?我正在使用Ubuntu,如果这有任何区别.
我在emacs中使用js2-mode中的swank-js.我可以用它来完成的node.js内置的或第三方API,如fs.readFile,fs.writeFile,express.use,async.forEach等在JS2模式?如果是的话,最好的设置是什么?
任何帮助表示赞赏:)
64位Windows 7
Clozure Common Lisp版本1.9 WindowsX8632
Emacs 24.3.1
史莱姆更改日期2014-06-17
我有一个示例.lisp文件,开头如下:
(ql:quickload 'qt)
(in-package "QT")
Run Code Online (Sandbox Code Playgroud)
程序的其余部分显示一个对话框.当我从命令行运行wx86cl -load helloqt.lisp它时,它似乎工作正常.当我从Emacs Slime(C-x C-k)运行它时,它说没有包"QT".但是,如果我首先单独评估第一行(C-x C-e)然后我可以编译整个事情并且它可以工作,模拟尝试在Windows上的Slime内运行QT线程的正常问题.
我如何制作它以便我可以从emacs编译/运行该文件而无需先手动评估第一行?
另外,为什么不在(in-package ...)Slime会话中更改当前包?如果我想与包内容进行交互,我必须手动更改它.
我在我的开发环境中使用Emacs和SLIME.当我输入(write-to然后C-M-i我得到以下自动填充:
Click on a completion to select it.
In this buffer, type RET to select the completion near point.
Possible completions are:
write-to-sting
write-to-string
Run Code Online (Sandbox Code Playgroud)
我知道Common Lisp很强大,但我猜write-to-sting不是ANSI标准.谷歌没有为这个功能提供一次点击.然后我试着在SBCL代码中找到它,但是唉
(documentation 'write-to-sting 'function)返回,nil因此它没有文档字符串.
当我尝试执行(write-to-sting)我得到的功能时The function COMMON-LISP-USER::WRITE-TO-STING is undefined.
Apropos还发现了一个未绑定的函数:
(apropos 'write-to)
WRITE-TO
WRITE-TO-STING
WRITE-TO-STRING (fbound)
Run Code Online (Sandbox Code Playgroud)
我的问题是:发生了什么事?有谁知道这个功能背后的故事?
我使用SLIME的repl在emacs上使用paredit.这意味着在我在repl上输入的任何时候,我的s表达式都是平衡的.
但是,它们可能不完整,我可能想继续在另一行中输入内容,如下所示:
CL-USER> (defun print-hello ()
)
Run Code Online (Sandbox Code Playgroud)
但是,当我按回车键开始新行时,SLIME repl会执行我的不完整表达式.我希望它等待我完成表达式,如下所示:
CL-USER> (defun print-hello ()
(format t "Hello, world"))
Run Code Online (Sandbox Code Playgroud)
我该如何做到这一点呢?
是否可以在Emacs中查看Clojure功能文档?也就是说,我可以配置Emacs来查找光标下的Clojure函数吗?
我正在使用clojure-mode和SLIME.奇怪的是,我甚至无法使用apropos或dir在SLIME的repl中,尽管它们是自动加载的lein repl.