Beginning Emacs for Clojure

Mon 19 September 2011
  • 装备 tags:
  • clojure
  • emacs published: true comments: true

没错我开始用Emacs了!对于一个使用lisp方言的开发的人来说,Emacs无疑是正统,是professional的象征。

Screenshot--home-sun-projects-clojalk-src-clojalk-wal.clj

其实用Emacs,远不需要太多的配置,就可以创建一个高效率的开发环境。我用了两天不到时间,当然还包括过去三年甚至更长时间里多次试图学习Emacs并最终半途而废残存的精力。

一步一步来,fedora系统的用户,比如这位,还有我,都会奇怪,命名有emacs,可是为什么没有GUI呢。因为系统自带的只是一个简单的版本,用yum安装一下emacs这个包才算是真正完整。

接下来要跳关了,大家注意。Emacs-starter-kit是一个帮助初学者预先配置emacs的一套默认配置文件,有了这个配置文件,也算是爬上了巨人的肩膀,省去了很多探路的时间。安装方式,把这个git仓库的master分支打包下载到~/.emacs.d/里即可(展开到这个目录)。启动emacs后,会自动安装。(作者名字很熟悉,对了,就是leiningen的作者)

由于package.el已经配置好了,接下来就可以安装一些必要的mode,两天的时间初探,我安装了:

  • clojure-mode
  • clojurescript-mode
  • auto-complete
  • color-theme-tangotango
  • slime
  • slime-repl

安装方式:
M-x package-install
输入包名即可。

clojure-mode和clojurescript-mode是编辑clojure的mode,不多说。

配色

color-theme我本来是习惯用solarized,不过尝试了几次color-theme-solarized这个包应该是有一些问题。退而选择了tangotango。要默认选择这个颜色,在init.el里加:
[cc lang="lisp"]
(require 'color-theme-tangotango)
(color-theme-tangotango)
[/cc]

代码提示

auto-complete是代码提示和自动补全插件,安装完成后要简单配置一下才能使用:
[cc lang="lisp"]
(require 'auto-complete-config)
(add-to-list 'ac-dictionary-directories "~/.emacs.d/elpa/auto-complete-1.4.20110207/dict/")
(ac-config-default)
[/cc]
当然网上有更多的高级配置,可以搜一下。

REPL

clojure的IDE必须要有repl的支持,在emacs中,repl通过slime这个mode来实现。此外还要额外安装swank: lein plugin install swank-clojure 1.3.2 在项目目录通过lein swank启动。在emacs中: M-x slime-connect 选择swank启动的host和port即可。这是一个支持tab提示的强大REPL,并且可以引用lein项目中的代码。

Edit/20110920
其实只需要在clojure-mode中通过M-x clojure-jack-in 即可启动swank和slime。

ParEdit

ParEdit是编辑括号的利器,Emacs-Starter-Kit已经把这个包配置好了。ParEdit不仅会自动打印括号,最强大的是还能阻止用户误删或误输入括号!有了它基本上括号的问题就轻松多了。
(当然,有时候需要强制删掉括号C-u DEL,也可能要强制输入括号C-q (C-q )

TagList

很遗憾ctags不支持clojure,而且emacs似乎也没有一个比较好的TagList。我看到有人提到imenu在一定程度上倒是可以做到类似的功能: M-x imenu

总得来说,捅破了窗户纸,用emacs编辑clojure还是最好的选择!