最近在阅读sicp这本书,书中的代码是使用scheme实现的。之前阅读的时候是使用Dr.Racket来完成写练习的,可我觉得与其这样,不如一步到位,使用emacs+lisp解释器来的比较快。

安装emacs

直接点击官方教程点我查看,上面讲解的十分清楚,基本上不同系统的安装方式大同小异,下载后点击运行,还是很简单的吧。

安装lisp解释器

lisp有无数种实现的版本,这里我使用的是Racket,因为我之前电脑上就有Dr.Racket所以不用下载,如果你没有的话,可以点击Racket下载地址,选择合适系统的版本进行下载,当然你也可以选择其他lisp方言的实现版本,例如Petite Chez Scheme下载地址。下载完解压即可。

下载完毕后,你可以得到这样的一些程序

接着设置将上图解释器所在的文件夹路径设置到系统路径中(windows=环境变量,mac/linux=$path),接着在终端敲击racket --version 来检查是否设置成功。如果出现以下信息,你就成功了。

安装一些必要而有效的插件

我们需要安装简单的几个插件来帮助我们高效的编写和运行代码。

设置插件源

和linux安装软件类似,这里我们设置MELPA的安装源,这样我们就可以一键安装代码了,十分方便。

鉴于国外访问速度很慢,我们这里使用国内的镜像源,这里要感谢一直维护自由软件的人,否则这些工具的设置与配置哪里会有这么容易和便捷:)

emacs中所有的配置都在~/.emacs这个文件中,对于windows,就是在C盘的个人目录文件夹下。我们可以通过编辑这个文件来对emacs进行一些自定义的配置。打开.emacs文件,在文件的末尾加上以下配置,设置我们的插件安装源。

 ;; melpa 安装源
(require 'package)
(add-to-list 'package-archives
'("melpa" . "http://elpa.emacs-china.org/melpa/")
t)
(package-initialize)

这样就可以方便的安装插件了。

安装Racket-mode

Racket-mode很好用,执行代码,高亮,提示,反正我觉得该有的都OK,下面就进行安装。

使用以下命令M-x package-install <ret> racket-mode,M代表alt组合键的意思,ret代表回车,所以该命令实际上就是

  • alt+x打开命令模式
  • 输入package-install (可以用空格键/tab来提示),回车
  • 再输入要安装的插件名racket-mode,回车确认,等待安装完毕。

怎么样,很简单吧。

安装完毕后,在配置文件.emacs配置文件中增加以下代码的配置

;;racket配置,设置解释器,自动补全,代码执行等
(require 'racket-mode)
(setq racket-racket-program "racket")
(setq racket-raco-program "raco")
(add-hook 'racket-mode-hook
(lambda ()
(define-key racket-mode-map (kbd "C-x C-j") 'racket-run)))
(setq tab-always-indent 'complete)

安装ParEdit

ParEdit是一款让你半结构化编辑lisp的插件,例如括号的自动补全,s-表达式的转移,提取等等,还是很方便的。

同样使用M-x package-install <ret> paredit-mode 进行安装即可。

具体的使用方法不是本篇文章的重点,可以参考以下几篇文章

Hello World

全部设置完毕后,我们新建一个文件(ctrl+x 回车 i 回车 输入文件名),输入以下代码

#! /usr/bin/env racket

#lang racket

(displayln "Hello World!")

接着使用F5 执行 S-表达式,成功的打印的出Hello World

至此,安装Emacs并设置racket环境就完毕啦

参考资料

安装Emacs并设置racket环境的更多相关文章

  1. Ubuntu上源码安装golang并设置开发环境

    安装go #wget https://dl.google.com/go/go1.10.3.linux-amd64.tar.gz #tar -xzf go1.10.3.linux-amd64.tar.g ...

  2. Linux 安装软件之后设置PATH环境变量

    每一个软件都有安装路径这一项,指定安装路径的目的,一方面是便于文件搜索与查找,另一方面更方便的使用软件. 比如,几乎大多数自己安装的软件,都会选择安装在/usr/local目录下,比如apache.m ...

  3. 02_Weblogic课程之安装篇:RedHat下JDK安装,RedHat下Weblogic安装,目录结构,环境变量设置

     1  Weblogic的安装方式有三种: 一.GUI方式安装    (java –jar wls1035_generic.jar [-mode=gui])这是默认的 二.Console方式安装  ...

  4. windows系统dokuwiki安装部署设置 xampp环境配置

    简单记录一次安装dokuwiki的过程 dokuwiki下载 dokuwiki下载地址 https://download.dokuwiki.org/ 下载前有一些可选项目,版本.语言.插件,可以按照需 ...

  5. InstallShield安装jdk并设置环境变量

    1. 检查是否安装jdk function OnBegin() begin Disable (BACKBUTTON); if(!MAINTENANCE)then SdLicense2 ("L ...

  6. ubuntu环境下nginx的编译安装以及相关设置

    一.基本的编译与安装 1.安装依赖项 sudo apt-get update sudo apt-get install build-essential zlib1g-dev libpcre3 libp ...

  7. 利用脚本,一键设置java环境变量(默认安装路径)

    Windows一键设置Java环境变量 右击以管理员方式运行,注意自行更改JAVA_HOME目录文件安装目录. JDKSetting.bat @echo off color 0a echo.----- ...

  8. 安装完Python之后,如何设置Python环境变量

    人生苦短,我用Python.最近有许多加群的萌新在咨询Python安装的事宜,Python安装问题不大,可以戳这篇文章:.本以为安装Python之后就可以万事大吉,高枕无忧了,往命令行中输入pytho ...

  9. 微信小程序开发环境安装以及相关设置配置

    微信小程序开发环境安装以及相关设置配置 一.安装 软件名称:wechat_devtools_1.02.1907232_x64 软件安装地址:https://developers.weixin.qq.c ...

随机推荐

  1. Android对话框AlertDialog-android学习之旅(四十二)

    对话框简介 android提供了丰富的对话框支持,支持四种如下的对话框. AlertDialog简介 介绍上面六个方法的代码示例 setMessage() <?xml version=" ...

  2. Cocos2D将v1.0的tileMap游戏转换到v3.4中一例(二)

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 首先在CatMazeV3中新建CatSprite类,继承于Spr ...

  3. Java数组的应用:案例:杨辉三角,三维数组,字符串数组

    //import java.util.Arrays; //包含Arrays //import java.util.Random; public class HelloWorld { public st ...

  4. java实现:将一个数各个位数相加

    前面已经实现过这个程序,现在我们就不多说了,直接更改C的源码,实现这个JAVA程序. import java.util.Scanner; public class HelloWorld { publi ...

  5. Linux信号实践(4) --可靠信号

    Sigaction #include <signal.h> int sigaction(int signum, const struct sigaction *act, struct si ...

  6. Leetcode_83_Remove Duplicates from Sorted List

    本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/41728739 Given a sorted linked ...

  7. 识别你的ADFS是什么版本的(Which version of ADFS is running)

    各版本的ADFS版本识别见如下链接: http://jorgequestforknowledge.wordpress.com/2014/02/23/gathering-architectural-de ...

  8. 【翻译】在Ext JS和Sencha Touch中创建自定义布局

    原文:Creating Custom Layouts in Ext JS and Sencha Touch 布局系统是Sencha框架中最强大和最独特的一部分.布局会处理应用程序中每个组件的大小和位置 ...

  9. Python的time(时间戳与时间字符串互相转化)

    strptime("string format")字符串如"20130512000000"格式的 输入处理函数 localtime(float a)时间戳的输入 ...

  10. hadoop上C++开发两种方式的例子

    百度在使用Hadoop过程中同样发现了Hadoop因为Java语言带来的低效问题,并对Hadoop进行扩展. 而在此之前,百度也尝试了 Hadoop PIPES 和 Hadoop Streamming ...