我在Emacs中使用Clojure和Cider REPL.
是否可以在苹果酒REPL中使用多行功能?我怎样才能做到这一点?
我已经安装了CIDER 0.7.0,现在当我在Emacs(via M-x cider-jack-in RET)中启动时,我收到以下警告:
警告:CIDER的版本(0.7.0)与cider-nrepl的版本(未安装)不匹配
我已经下载了cider-nrepl,发现它包含闭包代码,而不是emacs lisp代码.自从我今天开始探索Clojure世界,并且项目页面上没有安装说明,你能告诉我如何安装cider-nrepl?
当由于无限循环而陷入死锁时,我该如何退出苹果酒?
当它发生时,我必须杀死emacs,甚至重新启动计算机以杀死苹果酒.有没有更好的方法来解决这个问题?
我今天刚刚通过el-get安装了苹果酒.当我在emacs中启动苹果酒时,会打印以下横幅:
; CIDER 0.8.0-snapshot (Java 1.7.0_65, Clojure 1.6.0, nREPL 0.2.6)
WARNING: The following required nREPL ops are not supported:
eldoc ns-list ns-vars undef
Please, install (or update) cider-nrepl 0.8.0-snapshot and restart CIDER
WARNING: CIDER's version (0.8.0-snapshot) does not match cider-nrepl's version (0.7.0)
user>
Run Code Online (Sandbox Code Playgroud)
我可以在苹果酒中运行我的单元测试,但很多其他的东西都不起作用,比如文档查找等.请注意,提示也在用户名称空间中,而不是项目名称空间.
我的〜/ .lein/profiles.clj
{:user
{:plugins
[[cider/cider-nrepl "0.7.0"]]}
}
Run Code Online (Sandbox Code Playgroud)
我看到lein下载了所需内容(然后是一些,奇怪的是):
$ find ~/.m2 -name "*nrepl*"
~/.m2/repository/cider/cider-nrepl
~/.m2/repository/cider/cider-nrepl/0.8.0-SNAPSHOT/cider-nrepl-0.8.0-20140914.152356-14.jar.sha1
~/.m2/repository/cider/cider-nrepl/0.8.0-SNAPSHOT/cider-nrepl-0.8.0-20140914.152356-14.pom
~/.m2/repository/cider/cider-nrepl/0.8.0-SNAPSHOT/cider-nrepl-0.8.0-20140914.152356-14.jar
~/.m2/repository/cider/cider-nrepl/0.8.0-SNAPSHOT/cider-nrepl-0.8.0-20140914.152356-14.pom.sha1
~/.m2/repository/cider/cider-nrepl/0.8.0-SNAPSHOT/cider-nrepl-0.8.0-SNAPSHOT.pom
~/.m2/repository/cider/cider-nrepl/0.8.0-SNAPSHOT/cider-nrepl-0.8.0-SNAPSHOT.jar
~/.m2/repository/cider/cider-nrepl/0.7.0/cider-nrepl-0.7.0.jar.sha1
~/.m2/repository/cider/cider-nrepl/0.7.0/cider-nrepl-0.7.0.pom.sha1
~/.m2/repository/cider/cider-nrepl/0.7.0/cider-nrepl-0.7.0.jar
~/.m2/repository/cider/cider-nrepl/0.7.0/cider-nrepl-0.7.0.pom
~/.m2/repository/org/clojure/tools.nrepl
~/.m2/repository/org/clojure/tools.nrepl/0.2.6/tools.nrepl-0.2.6.pom.sha1
~/.m2/repository/org/clojure/tools.nrepl/0.2.6/tools.nrepl-0.2.6.pom
~/.m2/repository/org/clojure/tools.nrepl/0.2.6/tools.nrepl-0.2.6.jar.sha1
~/.m2/repository/org/clojure/tools.nrepl/0.2.6/tools.nrepl-0.2.6.jar
Run Code Online (Sandbox Code Playgroud)
我也看到lein想要引入cider-nrepl和tools.nrepl,虽然我当然不明白为什么:
$ lein deps :tree
warn
[cider/cider-nrepl …Run Code Online (Sandbox Code Playgroud) 使用苹果酒时,做"M-".上面的符号"clojure.lang.ISeq"给出错误"没有可用于clojure.lang.ISeq的源".
我看到这个文件的源代码是"clojure-1.5.1-sources.jar".
如何让Cider看到这个来源?
我最近通过MELPA升级了Emacs Cider,它似乎在我的机器上有一个错误.我不需要前沿的构建,并且很高兴回到较旧的构建,直到他们解决问题.但是,我不确定如何安装包列表中存在的旧版软件包.
我期待着:
编辑:这是一个副本关闭是否可以降级与ELPA一起安装的软件包?但是那个人没有答案,所以我重新问了这个问题.
我已经database-url为开发和测试环境设置了单独的,当在REPL中运行我的webapp和lein test从命令行运行时,这很好用.这是我的profiles.clj:
{:profiles/dev {:env {:database-url "wiki"}}
:profiles/test {:env {:database-url "wiki-test"}}}
Run Code Online (Sandbox Code Playgroud)
正确的数据库实例被击中的证据(我正在使用CouchDB):
;; Running the site from the REPL:
[info] [<0.12149.0>] 127.0.0.1 - - GET /wiki/home-page 200
[info] [<0.10353.0>] 127.0.0.1 - - GET /wiki/about 200
;; Running lein test:
[info] [<0.12026.0>] 127.0.0.1 - - GET /wiki-test/welcome 404
[error] [<0.12933.0>] Could not open file /usr/local/var/lib/couchdb/wiki-test.c
Run Code Online (Sandbox Code Playgroud)
但是,当我在Emacs中通过Cider运行测试时,它使用dev环境,因此使用了错误的数据库实例.
我该如何解决?
我不知道这是一般的Emacs问题还是特定的clojure/cider.无论如何:我如何传递在shell中工作的环境变量,并在我的〜/ .profile中配置.现在如果我在我的项目中lein repl,这很好用:
(System/getenv "FOO")
-> "BAR
Run Code Online (Sandbox Code Playgroud)
但是当我在我的项目中使用cider-jack-in时,CIDER repl无法看到变量:
(System/getenv "FOO")
-> nil
Run Code Online (Sandbox Code Playgroud)
我正在使用Emacs版本24.4.50的GUI(Cocoa)版本.苹果酒版本是苹果酒 - 20140718.747.
我不是要清理REPL的文本输出; 我的意思是清理REPL中的所有评估结果.在开发过程中,反复C-c C-q且C-c M-j效率低下.
我的调试行为可能有些不好.我不确定其他人如何用CIDER开发prog,但我真的需要上面提到的功能.我猜其他开发人员也会遇到与我相同的问题.
例如,在clojure prog单元的顶部,我declare用来声明一个foo由另一个函数使用的函数bar,并foo在之后实现bar.然后,我C-c C-k等,编程进展顺利.后来,我foo偶尔删除了前方声明.怎么了?编程仍然顺利.真的吗?然后,我完成整个工作并愉快地终止CIDER REPL会话.
早上的灾难:foo找不到符号!
那是我的故事.那么,没有人遇到类似的问题?
我有一个运行服务器的Luminus项目localhost:7000.我cider-connect用来依附于这个repl,但是我遇到了以下墙:
; CIDER 0.10.0snapshot (package: 20150820.852) \
(Java 1.7.0_51, Clojure 1.7.0, nREPL 0.2.10)
WARNING: The following required nREPL ops are not supported:
apropos classpath complete eldoc format-code format-edn info inspect-pop \
inspect-push inspect-refresh macroexpand ns-list ns-vars ns-path refresh \
resource stacktrace toggle-trace-var toggle-trace-ns undef
Please, install (or update) cider-nrepl 0.10.0-SNAPSHOT and restart CIDER
Run Code Online (Sandbox Code Playgroud)
我想至少有一个是调试所必需的; 试图检测功能产量
clojure.lang.LispReader$ReaderException: java.lang.RuntimeException: \
No reader function for tag dbg
Run Code Online (Sandbox Code Playgroud)
我可以使用'普通'Clojure项目进行调试.我已经尝试添加通常进入~/.lein/profiles.clj项目的样板文件project.clj无效:
:profiles/dev {:dependencies [[org.clojure/tools.nrepl "0.2.10"]]
:plugins [[cider/cider-nrepl "0.10.0-SNAPSHOT"]]} …Run Code Online (Sandbox Code Playgroud)