如何让Emacs、nrepl.el和Leiningen合作?

如何让Emacs、nrepl.el和Leiningen合作?,emacs,clojure,leiningen,Emacs,Clojure,Leiningen,事实上,我对使用vim+LeinRepl非常满意,但是因为有很多人一直说Emacs是Lisps的发展方向,所以我决定尝试一下。现在的问题是建立一个clojure环境,它可以完成人们一直在谈论的所有新奇的事情——现在我设法安装了clojure模式和nREPL,并且工作得相当好,但是如果这个实验要进行的话,我需要让repl与我的Leiningen项目一起工作(如果在编辑器中有一个repl意味着必须再次自己管理所有依赖项(尤其是与类路径相关的依赖项),那么这将是毫无意义的) A) 关于swank c

事实上,我对使用vim+LeinRepl非常满意,但是因为有很多人一直说Emacs是Lisps的发展方向,所以我决定尝试一下。现在的问题是建立一个clojure环境,它可以完成人们一直在谈论的所有新奇的事情——现在我设法安装了clojure模式和nREPL,并且工作得相当好,但是如果这个实验要进行的话,我需要让repl与我的Leiningen项目一起工作(如果在编辑器中有一个repl意味着必须再次自己管理所有依赖项(尤其是与类路径相关的依赖项),那么这将是毫无意义的)

  • A) 关于swank clojure,不推荐使用
  • B) 关于Leiningen 1.x,它已被弃用
  • C) 两者
  • D) 只包括安装,而不是如何实际使用的东西 您刚刚安装(或甚至安装了他们的功能)
现在我要找的是:

  • 让nrepl.el尊重我的project.clj
  • 了解leiningen+emacs+clojure模式+nrepl.el的正常工作流程
  • 与这个问题无关,但我想知道为什么emacs有时会在没有我要求的情况下掩盖文本(将字体颜色更改为背景色,直到被光标击中)

假设您同时安装了lein2和:

备选方案A:

只需在Emacs中打开属于lein项目的文件(如
foo.clj
),然后键入
M-x nrepl jack in
。这将在加载所有DEP的情况下启动一个nREPL,您可以或多或少地以与
swank clojure
相同的方式使用它。(我大部分时间都是这样做的)

备选案文B:

您可以在终端中转到项目的目录并在那里键入:

lein repl
然后键入
M-x nrepl
将允许您连接到正在运行的nrepl会话

nrepl.el
附带了一个方便的次要模式,允许您评估Clojure源文件中的代码,并将其直接加载到repl中(与swank Clojure相同)。中所有可用命令的列表可在
nREPL
菜单部分中找到

附言


nrepl.el
被重命名为
CIDER

默认情况下,nrepl.el已经知道了leiningen项目-这就是neat.nrepl.el知道了lein 2项目。lein 1.x不起作用这很好,我对lein 1.x不太感兴趣-我最近刚开始使用clojure,一直在努力避免“旧”东西(当你有一门相对较新的语言时,事情往往会很快变老)。如果你使用的是boath lein1和lein2。只需在.emacs文件中添加(setq nrepl lein命令“/Users/locojay/bin/lein2”)。您还应该看看ac nrepl的自动完成功能。这是一个很好的问题,也是我所需要的,谢谢。