我有与SLIME和SBCL的emacs.而且我遇到了emacs将'FORMAT'定义为格式字符串和rest对象的问题,所以在REPL当我试图评估像(格式t"hello")这样的东西时,我得到错误:错误的类型参数:stringp ,t.
是否覆盖了函数的情况?如何让emacs使用SBCL中定义的功能?
猜猜这是一个相当简单的新手问题,但谷歌的'格式'关键字真的很难:)
使用这个最小的init文件:
(setq package-load-list '((slime t)))
(setq inferior-lisp-program "clisp")
(package-initialize)
(setq package-enable-at-startup nil)
(require 'slime)
(slime-setup)
(slime)
(find-file "~/t/del.lisp")
Run Code Online (Sandbox Code Playgroud)
除了查找文档之外,一切似乎都有效,例如slime-eval-defun和slime-complete-symbol.Mx slime-describe-symbol RET print RET导致此错误:
CLHS-ROOT: variable *CLHS-ROOT-DEFAULT* has no value
Run Code Online (Sandbox Code Playgroud)
我需要在init文件中添加什么才能使其正常工作?
我也尝试下载hyperspec tar文件并将其解压缩到一个目录,这段代码:
(setq package-load-list '((slime t)))
(setq inferior-lisp-program "clisp"
common-lisp-hyperspec-root "c:/run/HyperSpec/"
common-lisp-hyperspec-symbol-table "c:/run/HyperSpec/Data/Map_Sym.txt")
(package-initialize)
(setq package-enable-at-startup nil)
(require 'slime)
(slime-setup)
(slime)
(find-file "~/t/del.lisp")
Run Code Online (Sandbox Code Playgroud)
这也行不通.我不知道bug是在那个init文件中,还是在我正在使用的SLIME版本中,因为这是我第一次使用SLIME.
版本:
UPDATE
C-c C-d f RET print RET工作良好.这是绑定的slime-describe-function,没有记录,并且未在SLIME菜单中列出.还有slime-documentation-lookup一个必然C-c C-d C-d可以在浏览器中打开变量(不仅仅是函数)的文档,这也是有效的.看起来只有`slime-describe-symbol不起作用.
我使用 Emacs 作为我的 Common Lisp(准确地说是 SBCL)编辑器,并使用 SLIME。我按照此处的说明设置了 Quicklisp ,并检查它是否在 SLIME之外工作,一切都很好 - 我可以抓取并下载代码,包括它,一切。
现在,我尝试在 Emacs 中使用“编译/加载文件”命令来获取顶部包含以下内容的源文件:
(ql:quickload "priority-queue")
(defpackage :tournament
(:use :cl :priority-queue))
(in-package :tournament)
Run Code Online (Sandbox Code Playgroud)
现在,再一次,不是在 SLIME 中,这工作得很好。然而,在 SLIME 中,我收到以下形式的错误:
The name "PRIORITY-QUEUE" does not designate any package.
[Condition of type SB-KERNEL:SIMPLE-PACKAGE-ERROR]
Run Code Online (Sandbox Code Playgroud)
当然,还要加上回溯。我是否遗漏了一些特别的东西?我使用package-installEmacs 安装了 slime,并且在 .emacs 文件中包含以下代码来进行设置:
(setq inferior-lisp-program "/usr/local/bin/sbcl")
(require 'slime)
(slime-setup)
Run Code Online (Sandbox Code Playgroud) 我正在使用emacs来学习如何在常见的lisp中编程,并且我遇到了一个令人困惑的问题.当我输入表达式时
(defconstant +some-constant+ (make-hash-table))
Run Code Online (Sandbox Code Playgroud)
我用它来评估它
M-x eval-buffer
Run Code Online (Sandbox Code Playgroud)
我收到了错误
Symbol's function definition is void: defconstant
Run Code Online (Sandbox Code Playgroud)
但是如果我将它复制并粘贴到粘液复制品中,它就可以完美地运行.当然,这会渲染大多数方便的键盘快捷键,用于评估程序中的lisp代码,而无需执行整个程序.每当我想测试一些东西时,我最终都会将我的缓冲区中的所有内容复制到粘液终端中.
这里发生了什么?
我是Lisp的新手.我在一个盒子里安装了LIsp来学习Common Lisp.在slime-repl我可以使用tab键使用自动完成.但是我想在其他缓冲区中执行此操作 - 文件 - 我编辑.例如,我想做以下事情:
C-x b ;; Here I switch to the buffer corresponding to my file. S I am not in the repl anymore.
(remove-i ;; Here I use the tab key, but nothing occurs.
Run Code Online (Sandbox Code Playgroud)
在repl缓冲区中,我可以键入(remove-i,我将看到匹配的函数,如remove-if和remove-if-not.
如何在编辑任何其他文件时添加lisp自动完成?
我想让Emacs,SLIME和quicklisp正常合作.我有以下环境设置:
(quicklisp-quickstart:install)在SBCL中运行(ql:add-to-init-file)在SBCL中运行(ql:quickload "quicklisp-slime-helper")在SBCL中运行(ql:quickload "cl-csv")在SBCL中使用安装的包cl-csv(setq inferior-lisp-program "sbcl")到.emacs(load (expand-file-name "~/quicklisp/slime-helper.el"))到.emacs我有一个test.lisp文件,首先(ql:quickload "cl-csv")加载包并使用它.当我将文件加载到Emacs并运行SLIME,然后尝试使用它编译它slime-compile-and-load-file,我得到SBCL中的错误Package CL-CSV does not exist.
我错过了什么让这些作品正确地协同工作?
在 Slime 中,我想清除我当前输入到 REPL 顶行中的输入。什么是捷径?
例如,如果我输入以下内容,它会缺少一个括号并且不会执行。如何简单地从输入行中清除整个文本?即不必在每个字符上手动按删除
(let* ((x 5) (y (+ x x))
(print y))
Run Code Online (Sandbox Code Playgroud)
我在这里找不到任何东西:https : //common-lisp.net/project/slime/doc/html/REPL-commands.html
这些解决方案似乎不同(但如果我错了,请纠正我)并且与整个屏幕相关,而我有兴趣清除我输入但尚未评估的内容:
我正在使用 Slime (Emacs) 和 Common Lisp (SBCL)。计算表达式后,REPL 返回 CL 对象列表:
(#<BOOKMARK-ENTRY {1009AFB963}> #<BOOKMARK-ENTRY {1009AFD5A3}>
#<BOOKMARK-ENTRY {1009AFDB53}> #<BOOKMARK-ENTRY {1009AFE0E3}>
#<BOOKMARK-ENTRY {1009AFE683}> #<BOOKMARK-ENTRY {1009AFEC23}>
#<BOOKMARK-ENTRY {1009AFF173}> #<BOOKMARK-ENTRY {1009AFF753}>
#<BOOKMARK-ENTRY {1009AFFCD3}> #<BOOKMARK-ENTRY {1009B00233}>
#<BOOKMARK-ENTRY {1009B00783}> #<BOOKMARK-ENTRY {1009B00CE3}>
#<BOOKMARK-ENTRY {1009B01253}> #<BOOKMARK-ENTRY {1009B01823}>
#<BOOKMARK-ENTRY {1009B01DD3}> #<BOOKMARK-ENTRY {1009B02393}>
#<BOOKMARK-ENTRY {1009B028B3}> #<BOOKMARK-ENTRY {1009B02E13}>
#<BOOKMARK-ENTRY {1009B03373}> #<BOOKMARK-ENTRY {1009B03903}>
#<BOOKMARK-ENTRY {1009B03EB3}> #<BOOKMARK-ENTRY {1009B04453}>
#<BOOKMARK-ENTRY {1009B049F3}> #<BOOKMARK-ENTRY {1009B04F23}>
#<BOOKMARK-ENTRY {1009B054A3}> #<BOOKMARK-ENTRY {1009B05AB3}>
#<BOOKMARK-ENTRY {1009B05FF3}> #<BOOKMARK-ENTRY {1009B06513}>
#<BOOKMARK-ENTRY {1009B06A83}> #<BOOKMARK-ENTRY {1009B07133}>
#<BOOKMARK-ENTRY {1009B076B3}> #<BOOKMARK-ENTRY {1009B07C13}>
#<BOOKMARK-ENTRY {1009B08213}>)
Run Code Online (Sandbox Code Playgroud)
如果我单击检查列表,则会打开一个新窗口,其中列出了所有对象:
#<CONS {1009AFCBB7}>
-------------------- …Run Code Online (Sandbox Code Playgroud) 我有一个程序正在尝试使用SLIME进行编译,Compilation failed.尽管我只是compiler notes警告,但仍收到消息。
如果我完整地突出显示代码并转到菜单选项“ SLIME”>“编译”>“编译区域”,但是编译文件(Cc Mk)失败,代码将编译(带有相同的警告集)。
我怀疑我需要切换某种触发器或命令来指示SLIME忽略警告。有任何想法吗?
我在Ubuntu Raring上使用SLIME / SBCL / Emacs和Quicklisp。我有下面定义的功能。我想将其添加到我的Lisp库的顶级.lisp文件中,即彼此依赖的一个文件,这样我就可以在我用库编写的所有函数中使用它,只需添加(update-swank)一个函数即可,而不必添加下面的整个功能,以及使用该功能的每段代码。
(defun update-swank ()
"Grabs SWANK connections and tells it to handle requests.
Call this every loop in the main loop of your program"
(continuable
(let ((connection (or swank::*emacs-connection*
(swank::default-connection))))
(when connection
(swank::handle-requests connection t)))))
Run Code Online (Sandbox Code Playgroud)
当我这样做并重新启动emacs时,由于我的asdf:load-op.sbclrc文件中包含,因此在加载过程中加载了我的库,我得到了
READ error during COMPILE-FILE:
;
; Package SWANK does not exist.
Run Code Online (Sandbox Code Playgroud)
在劣等的Lisp中,由于库未加载,SLIME被卡住了轮询,因为在我当前的设置中,SLIME / SBCL update-swank在加载其中的.lisp文件时不知道到底是什么。我尝试添加(in-package :swank)到其中的文件update-swank中,但是得到了
The name "SWANK" does not designate any package.
Run Code Online (Sandbox Code Playgroud)
在emacs启动时加载我的库时,性能下降。
我搜索了CEPL(从https://github.com/cbaggers/cepl/blob/master/cepl-utils.lisp获得更新更新),然后复制了CEPL的创建者所做的工作并将函数导出到了我的包中.lisp。我确保像他在cepl-utils的第20行上一样添加了该功能,在这里https://github.com/cbaggers/cepl/blob/master/cepl-utils.lisp ...... …
slime ×10
common-lisp ×8
emacs ×6
lisp ×4
sbcl ×3
quicklisp ×2
asdf ×1
autocomplete ×1
swank ×1