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语言并遵从 ...
随机推荐
- [转载]Android开发必备的21个免费资源和工具
转载自: http://blog.csdn.net/shimiso/article/details/6788375 Android移动开发平台现在不是一个“火”字能形容的,今年Android平台在市场 ...
- 一个高级PHP工程师所应该具备的
初次接触PHP,就为他的美所折服,于是一发不可收拾. 很多面试,很多人员能力要求都有“PHP高级工程师的字眼”,如果您真心喜欢PHP,并且您刚起步,那么我简单说说一个PHP高级工程师所应该具备的,希望 ...
- [转]百度地图点聚合MarkerClusterer移动地图时,Marker的Label丢失的问题
参考文献:http://www.cnblogs.com/jicheng1014/p/3143859.html 问题现象: 使用MarkerClusterer_min.js,可以实现点聚合,但是当将带有 ...
- linux —— 问题解决(锦集)
这里收录了我在使用ubuntu 时遇到的问题以及解决方案. 1. Ubuntu上由于/boot容量不足引起的无法更新系统 解决: [ link1 ] [ link2 ] 2. 在未联网的情况下,sud ...
- 捕android程序崩溃日志
主要类别: package com.example.callstatus; import java.io.File; import java.io.FileOutputStream; import j ...
- Android 连接Wifi和创建Wifi热点 demo
android的热点功能不可见,用了反射的技术搞定之外. Eclipse设置语言为utf-8才能查看中文注释 上代码: MainActivity.java package com.widget.hot ...
- 关于ImageView加载出现OOM问题
略感蛋疼,一直以为应该不是这个问题的,所以调试了一下午,后来测试了下如果在XML里面改变ImageView的src话会出现什么问题 结果如我预料,仍然是只能显示部分图片,因为之前有运行成功了,我也不清 ...
- IIS7.5 提示未在本地计算机上注册“Microsoft.Jet.OleDb.4.0”提供程序
在WIN7 X64平台IIS7.5,使用Asp.net连接access数据库时候,提示:未在本地计算机上注册“Microsoft.Jet.OleDb.4.0”提供程序. 说明: 执行当前 Web 请求 ...
- repeater 结合checkbox批量删除
项目中用到这个,从网上搜了搜相关内容,代码如下 <script type="text/javascript"> function checkAllThis(obj) { ...
- Linux 所有命令都用不了,只有cd exit能用
原因: 在设置 java环境变量时,编辑profile文件没有写正确,导致在命令行下 ls等命令不能够识别.在命令行下打入下面这段就可以了export PATH=/usr/local/sbin:/us ...