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语言并遵从 ...
随机推荐
- 5. c++ 内存管理 C/C++ 内存机制
参考自:http://blog.csdn.net/wpf_ml/article/details/7759911 1. 内存,Cache,寄存器内存:通常计算机将数据存放在物理内存,cache及寄存器中 ...
- 深入理解object C中复制对象的用法(一)
第一.复制对象的基本概念 复制一个对象为副本,开辟一块新的内存来存储副本对象. 第二.如果一个对象想具备复制的功能,必须实现<NSCopying>协议和<NSMutableCopyi ...
- Oracle执行计划——all_rows和first_rows(n) 优化器模式
0. 环境创建 SQL> create usertest identified by test 2 default tablespace users 3 temporary tablespace ...
- hdu 2844
本题的特殊性是价值与重量相等 将第i种物品分成若干件物品,其中每件物品有一个系数, 这件物品的费用和价值均是原来的费用和价值乘以这个系数. 使这些系数分别为1,2,4,…,2^(k-1),n[i]-2 ...
- 集成对象和 JSON
想象一下,如果 NSDictionary,NSArray,NSString 呾 NSData 都提供方法 相亏转换 JSON 数据,返样丌径好举? 嗯,等等 – 我们正在使用 Objective-C, ...
- MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)
MySQL主从复制(Master-Slave)即同步与读写分离(MySQL-Proxy)即集群
- Java线程的相关方法
~ start() 启动线程方法 ~ run() 调用start()方法时,真正执行的就是该方法的方法体 ~ sleep() 让当前线程睡眠,睡眠到期自动苏醒,并进入可运行状态,而不是运行状态 ...
- 【.NET特供-第三季】ASP.NET MVC系列:MVC与三层图形对照(颠覆性理论)
在[.NET特供-第三季]系列博客中的第一篇<ASP.NET MVC系列:MVC与三层图形对照>发表之后,引起了领导的注意.同一时候,开发小组内部在交流MVC和三层之间关系的 ...
- Linux下查看所有用户(shell脚本获取)
在Linux系统中,使用者账号管理最重要的两个文件是/etc/password和/etc/shadow.在/etc/password文件中,每一行都代表一个账号,但是有很多账号是系统账号.比如:b ...
- js window.open()弹出窗口参数说明及居中设置
window.open()可以弹出一个新的窗口,并且通过参数控制窗口的各项属性. 最基本的弹出窗口代码 window.open('httP://codeo.cn/'); window.open()各参 ...