开发者社区> 问答> 正文

关于EMACS+SBCL+SLIME编译环境加载文件?报错

运行在win8,64位.C-c,C-l加载文件后,会报错

把保存的文件里面开头的CL-USER>删掉后可以正常加载,是不是我保存文件方法不对啊?

展开
收起
爱吃鱼的程序员 2020-06-09 13:58:11 581 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    CL-USER>是slime的提示符,它不能写进lisp文件中,因为没办法求值,所以正确的lisp文件里不能以它开头.

    多谢,那我要怎么把用slime写好的文件保存成能作为程序加载的文件?

    我怀疑你是直接把REPL区的内容手动保存了,首先你得搞清楚编辑缓冲区和REPL区,按照下面的步骤来操作好了,先创建一个lisp文件,它会出现在一个编辑缓冲区,再创建一个对应于这个文件的REPL区,具体操作如下:

    1.创建新文件:

    使用如下快捷键 C -x C -f就是先同时按下Ctrl键和x键,然后全部松开,再同时按下Ctrl键和f键,再松开,Emacs屏幕底部会显示如下: Find file:~/默认保存在当前用户目录下,Mac系统是/Usrs/admin/

    2.新建一个REPL区

    C -c C -z可以直接调出一个关联到当前文本编辑界面的REPL窗口

    多谢你的悉心教导,快捷键含义我明白,这样新建之后是不是M-x开slimemode就可以了,我明天试一试晚上再问你。真的非常感谢!

    一般来说是可以通过M-x启动slime的,不过它需要你预先在Emacs的配置文件里设置好.

    我C-x,C-f新建了文件之后,是不是在C-c,_C-z关联的slime-REPLsbcl区写代码,求值,debug,然后把满意的代码复制到我C-x,C-f新建的文件里面,再保存?

    反了,你这样弄起来很麻烦.

    写代码直接在文件缓冲区写, 运行调试代码在REPL区,而且两者有快捷键切换.

    当你在文件缓冲区写完一个函数时,你可以把光标放在函数代码段内的任意一个位置,然后输入快捷键:

     
      C-c
      
       C-y把光标所在区域的函数名称发送到对应的REPL进程中,非常方便调试代码
      
     


    当你想从REPL区切换回文件缓冲区,可以使用下面的快捷键:

    C -xo先同时按下Ctrl键和x键,松开,再按下o键

    我看了一下那个slime的使用说明,试了一下之后,明白了,要先对文件缓冲区的表达式C-cC-p求值,,然后在文件缓冲区C-cC-y发送函数到REPL调试.终于是会用了,多谢指教!
    2020-06-09 13:58:29
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Shell 脚本速查手册 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载