标签: slime

emacs和SBCL的冲突(?)'FORMAT'功能

我有与SLIME和SBCL的emacs.而且我遇到了emacs将'FORMAT'定义为格式字符串和rest对象的问题,所以在REPL当我试图评估像(格式t"hello")这样的东西时,我得到错误:错误的类型参数:stringp ,t.

是否覆盖了函数的情况?如何让emacs使用SBCL中定义的功能?

猜猜这是一个相当简单的新手问题,但谷歌的'格式'关键字真的很难:)

lisp emacs sbcl slime

2
推荐指数
1
解决办法
461
查看次数

如何将Hyperspec文档连接到MS Windows上的Emacs SLIME

使用这个最小的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.

版本:

  • MS Windows 7
  • Emacs版本24.3.1(可能最新稳定)
  • SLIME版本20130626.1151(来自MELPA的最新版本)(一个来自Marmalade说它无法编译为零,我不知道这意味着什么,因此我使用的是MELPA中的一个)
  • GNU CLISP 2.49(最新稳定版)

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 slime

2
推荐指数
1
解决办法
1583
查看次数

SLIME 和 Quicklisp 相处得不好

我使用 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 sbcl slime quicklisp

2
推荐指数
1
解决办法
470
查看次数

在缓冲区中评估不同于在粘液中评估?

我正在使用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 emacs common-lisp slime

2
推荐指数
1
解决办法
246
查看次数

编辑文件时粘液自动完成

我是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-ifremove-if-not.

如何在编辑任何其他文件时添加lisp自动完成?

emacs autocomplete common-lisp slime

2
推荐指数
1
解决办法
1186
查看次数

如何让Emacs/Slime/SBCL识别quicklisp包

我想让Emacs,SLIME和quicklisp正常合作.我有以下环境设置:

  • 安装了Emacs
  • 在Emacs中安装了SLIME
  • 已安装SBCL
  • 安装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.

我错过了什么让这些作品正确地协同工作?

sbcl common-lisp asdf slime quicklisp

2
推荐指数
2
解决办法
1192
查看次数

在 Slime REPL (GNU EMACS) 中,清除当前输入的快捷方式是什么

在 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

这些解决方案似乎不同(但如果我错了,请纠正我)并且与整个屏幕相关,而我有兴趣清除我输入但尚未评估的内容:

emacs cider 清除 REPL 缓冲区 在 emacs 中,如何绑定 Cl 以清除粘液中的屏幕?

lisp emacs common-lisp slime

2
推荐指数
1
解决办法
165
查看次数

在 Slime 的检查器中,检查完一个元素后,如何返回到对象列表?

我正在使用 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)

common-lisp slime

2
推荐指数
1
解决办法
284
查看次数

SLIME编译失败,仅显示警告

我有一个程序正在尝试使用SLIME进行编译,Compilation failed.尽管我只是compiler notes警告,但仍收到消息。

如果我完整地突出显示代码并转到菜单选项“ SLIME”>“编译”>“编译区域”,但是编译文件(Cc Mk)失败,代码将编译(带有相同的警告集)。

我怀疑我需要切换某种触发器或命令来指示SLIME忽略警告。有任何想法吗?

lisp compiler-errors common-lisp slime

1
推荐指数
1
解决办法
275
查看次数

在库中使用Swank函数

我在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 ...... …

common-lisp slime swank

1
推荐指数
1
解决办法
882
查看次数

标签 统计

slime ×10

common-lisp ×8

emacs ×6

lisp ×4

sbcl ×3

quicklisp ×2

asdf ×1

autocomplete ×1

compiler-errors ×1

swank ×1