Windows下安装Emacs+Sbcl+Slime
前言
其实网上已经有很多类似的文章了,我也是按照上面的来做。在做的过程中会遇到几个很坑的地方,我自己也是折腾了好久才弄好。所以现在写出来希望能对大家有所帮助。
正文
- 下载和安装Emacs
http://ftp.gnu.org/gnu/emacs/windows/emacs-24.3-bin-i386.zip
解压运行安装
- 下载Sbcl
http://www.sbcl.org/platform-table.html
选Windows和你的架构。如果不知道的话就选X86就行了。
- 下载Slime
https://github.com/slime/slime
如果你有github帐户就直接git clone吧。如果没有的话,点download zip然后解压。
- 安装Sbcl
双击安装包,改一下安装路径到你想安装的地方。但是这里有一个坑。
坑1:系统变量重启才会更新
这是因为在安装的过程中会给系统加一个Sbcl路径的变量。
所以一定要安装完后重启,不然就会提示
fatal error encountered in SBCL pid 10236(tid 9971200):
can't find core file at XXXXX
安装成功的标志是运行sbcl.exe会出现类似这样的界面:

- 配置Emacs
本来在Linux下配置Emacs是一件简单的事,但在Windows下就不那么容易了。因为Windows文件名命名机制这里有一个坑。
坑2:找不到Emacs的配置文件.emacs
这是因为Windows允许这样的命名规则,也是就不允许只有扩展名而没有文件名(在Windows看来是.emacs非法的,必须是XXX.emacs才是合法的。Linux则是看成一个隐藏文件而已)
所以要做的第一步是生成.emacs配置文件
原理是通过修改选项之后点保存选项会生成.emacs配置文件
方法很简单。在Emacs目录下双击runemacs.exe打开emacs
然后在菜单栏里点Options-----Show/Hide-----tool-bar
之后点Options-----Save options
这样就会在C:\Users\你的用户名\AppData\Roaming下生成一个.emacs
打开.emacs 输入以下内容以配置Slime
(setq inferior-lisp-program "sbcl路径");设置优先使用哪种Common Lisp实现 (add-to-list 'load-path "slime路径");设置Slime路径 (require 'slime) (slime-setup) (require 'slime-autoloads) (slime-setup '(slime-fancy));让slime变得更好看,比如把sbcl的*变成CL-USER>
其中路径使用/或者//分隔
这其中有一个坑需要小心
坑3:sbcl的路径一定要写到sbcl.exe 不然会提示
Specified program for new process is a directory
这个真的是深坑啊。当时我花了不少时间才折腾好
原理就是slime调用的时候不会从你填的路径找到sbcl.exe而是需要给出sbcl.exe的完整路径
我的.emacs配置是这样的

打开Emacs 按M-x(window下就是Alt+x)输入slime 之后会出现像这样的

输入"Hello Common Lisp!" 一声长叹

后记
一些常用的Slime快捷键
C-c C-k 编译当前文件 (也就是Ctrl+c后再Ctrl+k) C-c C-c 增量编译(这是我自己的理解) C-c C-z 切换到Slime C-c C-l 加载文件
当然以上快捷键都可以再.emacs里面改。
PS:我的配色是solarized 字体是Monaco
PSS:以上Vim的配色。Emacs的配色是自带的dichromacy
Windows下安装Emacs+Sbcl+Slime的更多相关文章
- windows下编辑器Emacs的安装与配置
一年成为Emacs高手(像神一样使用编辑器) http://blog.csdn.net/redguardtoo/article/details/7222501 原创作品,允许转载,转载时请务必以超 ...
- 在Windows下编译Emacs
在Windows下编译Emacs Windows下编译好的Emacs主要有两个版本,一个来自http://nqmacs.sourceforge.net/,另一个来自http://www.crasseu ...
- 在windows下安装gulp —— 基于 Gulp 的前端集成解决方案(一)
相关连接导航 在windows下安装gulp —— 基于 Gulp 的前端集成解决方案(一) 执行 $Gulp 时发生了什么 —— 基于 Gulp 的前端集成解决方案(二) 常用 Gulp 插件汇总 ...
- Windows 下安装 MongoDB
Windows 下安装 MongoDB 的步骤:1.官网www.mongodb.com下载安装包或zip包2.解压下载的文件到文件夹 D:\mongo .3.使用管理员权限打开CMD,导航到目录 D: ...
- Coreseek Windows下安装调试
由于项目需要全文检索,后面就去网上查了下资料,找到了Sphinx[中文是狮身人面像]这个全文检索引擎,听说挺好用的,不过没有中文分词.后面又去找了一下,找到了Coreseek,一款中文全文检索/搜索软 ...
- 从零开始学 Java - Windows 下安装 Tomcat
谁都想分一杯羹 没有一个人是真正的无私到伟大的,我们试着说着做自己,与人为善,世界和平!殊不知,他们的真实目的当你知道后,你会被恶心到直摇头并下意识地迅速跑开,下辈子都不想见到他.不过,他没错,你也没 ...
- 从零开始学 Java - Windows 下安装 JDK
关于未来 "我要死在火星.在我死去的时候能够想着人类能有一个美好的未来--有可持续的能源,同时能够殖民其他的星球来避免人类灭绝的最坏可能." 官网下载 直接打开官网:http:// ...
- windows下安装nginx
说起开发,自己感到非常惭愧,由于公司让我给<绿电侠>项目写整体架构解决方案,才开始接触nginx这个东东,突然觉得它是一把非常好的利器. 本文主要记录在windows下安装nginx,另参 ...
- Redhat/Ubuntu/Windows下安装Docker
Redhat/Ubuntu/Windows下安装Docker 什么是Docker Docker是Docker.inc公司开源的一个基于LXC技术之上构建的Container容器引擎,基于Go语言并遵从 ...
随机推荐
- Nodejs in Visual Studio Code 03.学习Express
1.开始 下载源码:https://github.com/sayar/NodeMVA Express组件:npm install express -g(全局安装) 2.ExpressRest 打开目录 ...
- UVALive 4959 Jumping monkey
题意就是: 一个猎人在森林里捕猎. 然后有只猴子,喜欢躲树的后边,猎人看不见它 然后给出了一张图,表示有哪些树是相邻的. 数据保证任意图中两个树都可以直接或间接的到达 猎人有一个枪,每次他可以选择一颗 ...
- C++ —— 非常量引用不能指向临时对象
目录 举例 分析 解决 1.举例 非常量引用 指向 临时对象 —— 即:将 临时对象 传递给 非常量引用类型. 如以下情况就会出现: 实现实数Rational类,实数可以使用+号相加,运算的结果要可以 ...
- python常用的一些东西——sys、os等
1.常用内置函数:(不用import就可以直接使用) help(obj) 在线帮助, obj可是任何类型 callable(obj) 查看一个obj是不是可以像函数一样调用 ...
- spring mvc事务注解
@Transactional(noRollbackFor=RuntimeException.class)方法事务说明@Transactional(RollbackFor=Exception.class ...
- rman catalog (rman 恢复目录)
受控制文件大小的限制,一般rman需要用rman catalog来管理及存放备份信息: 这里介绍一下创建rman catalog的步骤: C:\Documents andSettings\Admini ...
- Android(java)学习笔记250:ContentProvider使用之获得系统联系人信息02(掌握)
1.重要: 系统删除一个联系人,默认情况下并不是把这个联系人直接删除掉了,只是做了一个标记,标记为被删除. 2.前面一讲说过了如何获取系统联系人信息(通过ContentProvider),获取联系人信 ...
- Gamit解算脚本
这是一个解算单天的shell脚本,对于初学者很有帮助. 首先就是需要在项目(四个字符)建立rinex brdc igs 还有以年纪日命名的目录,然后提前准备好station.info和lfile.文件 ...
- 【转】iOS实时卡顿监控
转自http://www.tanhao.me/code/151113.html/ 在移动设备上开发软件,性能一直是我们最为关心的话题之一,我们作为程序员除了需要努力提高代码质量之外,及时发现和监控软件 ...
- MediaPlayer 音频播放 示例
状态机.流程图.生命周期 对播放音频/视频文件和流的控制是通过一个状态机来管理的.下图显示一个MediaPlayer对象被支持的播放控制操作驱动的生命周期和状态. 椭圆代表MediaPlayer对象可 ...