前言

其实网上已经有很多类似的文章了,我也是按照上面的来做。在做的过程中会遇到几个很坑的地方,我自己也是折腾了好久才弄好。所以现在写出来希望能对大家有所帮助。

正文

  • 下载和安装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的更多相关文章

  1. windows下编辑器Emacs的安装与配置

    一年成为Emacs高手(像神一样使用编辑器) http://blog.csdn.net/redguardtoo/article/details/7222501   原创作品,允许转载,转载时请务必以超 ...

  2. 在Windows下编译Emacs

    在Windows下编译Emacs Windows下编译好的Emacs主要有两个版本,一个来自http://nqmacs.sourceforge.net/,另一个来自http://www.crasseu ...

  3. 在windows下安装gulp —— 基于 Gulp 的前端集成解决方案(一)

    相关连接导航 在windows下安装gulp —— 基于 Gulp 的前端集成解决方案(一) 执行 $Gulp 时发生了什么 —— 基于 Gulp 的前端集成解决方案(二) 常用 Gulp 插件汇总 ...

  4. Windows 下安装 MongoDB

    Windows 下安装 MongoDB 的步骤:1.官网www.mongodb.com下载安装包或zip包2.解压下载的文件到文件夹 D:\mongo .3.使用管理员权限打开CMD,导航到目录 D: ...

  5. Coreseek Windows下安装调试

    由于项目需要全文检索,后面就去网上查了下资料,找到了Sphinx[中文是狮身人面像]这个全文检索引擎,听说挺好用的,不过没有中文分词.后面又去找了一下,找到了Coreseek,一款中文全文检索/搜索软 ...

  6. 从零开始学 Java - Windows 下安装 Tomcat

    谁都想分一杯羹 没有一个人是真正的无私到伟大的,我们试着说着做自己,与人为善,世界和平!殊不知,他们的真实目的当你知道后,你会被恶心到直摇头并下意识地迅速跑开,下辈子都不想见到他.不过,他没错,你也没 ...

  7. 从零开始学 Java - Windows 下安装 JDK

    关于未来 "我要死在火星.在我死去的时候能够想着人类能有一个美好的未来--有可持续的能源,同时能够殖民其他的星球来避免人类灭绝的最坏可能." 官网下载 直接打开官网:http:// ...

  8. windows下安装nginx

    说起开发,自己感到非常惭愧,由于公司让我给<绿电侠>项目写整体架构解决方案,才开始接触nginx这个东东,突然觉得它是一把非常好的利器. 本文主要记录在windows下安装nginx,另参 ...

  9. Redhat/Ubuntu/Windows下安装Docker

    Redhat/Ubuntu/Windows下安装Docker 什么是Docker Docker是Docker.inc公司开源的一个基于LXC技术之上构建的Container容器引擎,基于Go语言并遵从 ...

随机推荐

  1. HDU_2147——组合博弈,转换为P/N图,然后找规律

    Problem Description Recently kiki has nothing to do. While she is bored, an idea appears in his mind ...

  2. 一个linux下socket编程的例子,client连server

    关于socket编程,以下文章写得比较好:http://www.cnblogs.com/xudong-bupt/archive/2013/12/29/3483059.html 1. accept()函 ...

  3. Aggregating tests in suites

    我们可以将来自不同类的test组成一个test suite.在JUnit 3.8.x我们使用 static Test suite()方法,但是在JUnit4我们使用在类前面加上注释 @RunWith( ...

  4. Test execution order

    刚开始的时候,JUnit并没有规定测试方法的调用执行顺序.方法通过映射的API返回的顺序进行调用.然 而,使用JVM顺序是不明智的,因为Java平台没有规定任何特定的顺序,事实上JDK7或多或少的返回 ...

  5. java中的接口和抽象类是什么?

    抽象类与接口的区别 abstract class和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了Java强大的面向对象能力.abstract c ...

  6. NDK GDB 中打印vector , vector<vector <> >

    在android上进行native开发的时候,我们需要用NDK-GDB 对native code进行调试,其中很麻烦的是,我使用的NDK版本是4.0,该版本还不支持用NDK-GDB直接打印vector ...

  7. JDKSDK配置

    变量名:ANDROID_HOME     变量值: E:\android-sdk_r11-windows\android-sdk_r11-windowsclsspath .;%JAVA_HOME%\l ...

  8. XTU1199:Number Game

    题目描写叙述 给你一个有N个数的集合S和一个数X,推断是否存在S的一个子集,子集里的数的最小公倍数正好是X. 输入 第一行是数据组数T. 接下来有多组数据,每组数据包括两行: 第一行有2个数N和X,1 ...

  9. C++中struct和class的区别 [转]

    一. C++中的struct对C中的struct进行了扩充,它已经不再只是一个包含不同数据类型的数据结构了,它已经获取了太多的功能. struct能包含成员函数吗?   能! struct能继承吗?  ...

  10. 配置VSFTP服务器

    一.Linux FTP服务器分类:  <1>wu-ftp  <2>proftp=profession ftp  <3>vsftp=very security ftp ...