之前一直在寻找好的编写clojure的环境,经过一翻努力,终于搭建了一个lein1.5+clojure+slime的环境,但是想达到一边编译一边调试的功能始终没有成功,遂放弃此前摸索的结果,基于nrepl+lein2.x+emcas成功搭建学习环境;步骤如下:
1.安装emacs-24.x版本,点击查看具体方法
2.rm ~/.emacs
3.将https://github.com/karlkedrovsky/config/tree/master/emacs.d下两个文件,放入~/.emacs.d文件夹下
4.从https://github.com/technomancy/leiningen/tree/下载stable版本(2.x)的leinigen和1.5.2版本的leiningen;将1.5.2版本的leiningen/bin/lein重命名为lein1,并添加到PATH中,然后将稳定版本的lein也添加到PATH中;在stable版本的leiningen-core目录下执行lein1 install,来下载相关的依赖包(ps:很多文档都提到用mvn,这里成功避免使用庞大的mvn);
5.在自己的clojure workspace下,执行lein new testclj;
6.启动emacs,等待package install的结束;然后载入testclj下core.clj文件,编写自己的一个函数,M-x nrepl-jack-in;将游标core.clj缓冲区的自定义函数的最后C-x C-e,将编写的函数发送给nrepl,然后就可以在nrepl中测试刚才编写的函数了
7.遇到的问题:
1).package install中如果出现"Package % is not available in clojure-mode",在你的init.el的(package-initialize)前面加一空行;
2).如果打开nrepl-jack-in时提示lein版本需要2.x;则检查你的PATH中的lein是否指向2.x版本,如果是,但是emacs里还是提示,则reboot;
8.感谢以下作者的分享:
Karl Kedrovsky :http://www.kedrovsky.com/blog/clojure-emacs-nrepl-and-leiningen