最近在阅读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. 【项目管理】 PMBOK 基础概念 (引论 PMBOK 笔记)

    好紧张, 3月28考试, 全力学 PMP ~~ 一. 项目 1. 项目的定义 项目 : 项目是为创造 独特 的 产品, 服务 或 成果 而进行的 临时性 工作; -- 独特 : 独特性是项目的特征, ...

  2. 利用gradle添加构建版本号

    在java的程序中,貌似都没有这个构建版本号的概念,用的诸如eclipse, idea和android studio的IDE也没有直接提供构建版本号的选项.不过我却想在android程序的版本号当中添 ...

  3. React Native之Navigator

    移动应用很少只包含一个页面.从你添加第二个页面开始,就得考虑如何管理多个页面间的跳转了. 导航器正是为此而生.它可以管理多个页面间的跳转,也包含了一些常见的过渡动画,包括水平翻页.垂直弹出等等. Na ...

  4. 设计模式之——工厂模式(A)

    本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/41085085 昨天看完了工厂模式,觉得在开发的过程中好多地 ...

  5. 【leetcode76】Intersection of Two Arrays II

    题目描述: 给定两个数组求他们的公共部分,输出形式是数组,相同的元素累计计数 例如: nums1 = [1, 2, 2, 1], nums2 = [2, 2], return [2]. 原文描述: G ...

  6. 发布Ext JS 5.1 beta版本

    原文:Announcing Ext JS 5.1 Beta 概述 我们很高兴的宣布,Ext JS 5.1 beta发布了.自从Ext JS 5.0.1,我们一直在努力添加一些令人兴奋的和一些在Senc ...

  7. 配置hadoop-1.2.1 eclipse开发环境

    写这篇文章的目的是记录解决配置过程中的问题 首先我们先看下这篇博文 配置hadoop-1.2.1 eclipse开发环境 但是在[修改 Hadoop 源码]这里,作者发布的 hadoop-core-1 ...

  8. 点击table中的某一个td,获得这个tr的所有数据

    功能: 点击table中的某一个td,获得这个tr的所有数据 效果图 <html> <head> <script> function getData2(elemen ...

  9. Gradle 1.12用户指南翻译——第二十二章. 标准的 Gradle 插件

    其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Github上的地址: https://g ...

  10. JUnit4快速入门

    JUnit最佳实践 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 public class CardServiceTest {     /**      * 最佳 ...