标签: nrepl

Emacs,Clojure,lein和nrepl:*nrepl*buffer显示空白

我创建了一个新项目lein.我core.clj在emacs中打开.我确保跑M-x clojure-mode,并且M-x nrepl-enable-on-existing-clojure-buffers.

然后我跑,M-x nrepl-jack-in并在我得到的迷你缓冲区

启动nREPL服务器...

然后是一条消息,例如:

连接的.如果你优化一切,你一定会感到不快. - 唐纳德克努特

我看到缓冲区名称是*nrepl*,但缓冲区不包含Clojure Repl,而是完全空白.

如果我输入任何东西(意思是任何东西),我得到:

错误的类型参数:integer-or-marker-p,nil

如果我切换回我的core.clj缓冲区,并点击C-c C-l,我得到迷你缓冲区中缓冲区中最后一个函数的命名空间名称.如果我将光标放在函数定义的末尾并点击C-x C-e,我得到:

CompilerException java.lang.RuntimeException:无法在此上下文中解析符号:x,编译:(NO_SOURCE_PATH:1:1)

我尝试使用没有依赖项的新lein目录,lein new project-name并尝试上述相同的步骤并得到相同的结果.

我还能检查什么和/或我做错了什么?

编辑:附加信息

当我在空*nrepl*缓冲区中C-x C-e键入内容并尝试按下我键入的内容时,在迷你缓冲区中我收到消息:

没有Lisp子进程; 看变量`inferior-lisp-buffer'

另外,我正在运行:

GNU Emacs 24.3.1

Leiningen 2.1.2 on Java 1.6.0_27 OpenJDK 64位服务器VM

emacs clojure leiningen nrepl

6
推荐指数
1
解决办法
636
查看次数

在Lein和Ring的Clojure中缺少*out*

我正在运行Lein 2和苹果酒0.7.0.我制作了一个使用ring/run-jetty启动的示例环应用程序.

(ns nimbus-admin.handler
  (:require [compojure.core :refer :all]
            [compojure.handler :as handler]
            [clojure.tools.nrepl.server :as nrepl-server]
            [cider.nrepl :refer (cider-nrepl-handler)]
            [ring.adapter.jetty :as ring]
            [clojure.tools.trace :refer [trace]]
            [ring.util.response :refer [resource-response response redirect content-type]]
            [compojure.route :as route])
  (:gen-class))


(defroutes app-routes 
  (GET "/blah" req "blah")
  (route/resources "/")
  (route/not-found (trace "not-found" "Not Found")))

(def app (handler/site app-routes))

(defn start-nrepl-server []
  (nrepl-server/start-server :port 7888 :handler cider-nrepl-handler))

(defn start-jetty [ip port]
  (ring/run-jetty app {:port port :ip ip}))

(defn -main
  ([] (-main 8080 "0.0.0.0"))
  ([port ip & args] 
     (let [port …
Run Code Online (Sandbox Code Playgroud)

clojure ring nrepl

6
推荐指数
1
解决办法
855
查看次数

clojure repl支持身份验证吗?

我检查了lein和clojure 1.8 socket repl的repl,看起来没有一个支持用户名/密码.如果我打开repl到外部连接,如何使其安全?或者需要使用ssh登录主机,然后从该主机连接到repl?

clojure nrepl

6
推荐指数
1
解决办法
255
查看次数

Clojure-如何远程连接到正在运行的REPL进程

如何连接到可以通过例如SSH访问的远程服务器上运行的REPL会话?

ssh clojure remote-access leiningen nrepl

6
推荐指数
3
解决办法
1638
查看次数

有没有办法在nrepl进行历史搜索?

你知道当你在bash中点击向上箭头时它会填写你输入的最后一个命令吗?在nrepl有什么办法吗?

到目前为止,我一直在进行反向搜索(C-r),输入相关行的前几个字符,查找行(s)(C-k),跳转到缓冲区的末尾(M->)并查找被杀死的行(C-y).有更简单的方法吗?

emacs clojure nrepl

5
推荐指数
1
解决办法
1491
查看次数

关闭nrepl的正确方法是什么?

你如何优雅地关闭emacs中的nrepl?

swank-clojure用逗号关闭然后sayoonara,这对nrepl不起作用.

emacs clojure nrepl

5
推荐指数
1
解决办法
1120
查看次数

有什么方法可以让 Vim Fireplace 自动连接到 nREPL?

我正在lein repl一个项目中运行,它成功启动并创建了文件 target/repl-port。

使用 VIM 7.4.86 版,我可以使用如下命令:

:Connect nrepl://localhost:57644

Vim 然后成功连接到 repl,一切都很好。

但是,我的理解是 vim-fireplace 能够使用 target/repl-port 文件自行建立此连接。那不会发生。我确实看到了关于 lein 2.3 更改为使用 target/repl/repl-port 的评论(我在这个项目中使用了 lein 2.0.0 - 这是我无法控制的要求)所以我试图在这个位置创建一个符号链接,但是这也没有被接受。

我正在使用以下版本的 vim-fireplace: github.com/tpope/vim-fireplace

在最新的提交中,目前是:

f1b8096b3fe00cd9594c8a2bf0819efc154e9843
(Date:   Wed Oct 23 21:25:53 2013 -0700)
Run Code Online (Sandbox Code Playgroud)

我希望自动化这个连接。我对 VIMscript 不太了解,所以我希望可能有某种方法可以追踪问题,而不必深入研究来源。

vim clojure nrepl

5
推荐指数
1
解决办法
1375
查看次数

如何使用Emacs/nrepl/Quil在Clojure中实现代码?

我有一个相当标准的Quil文件,我正在使用Emacs和nrepl进行编辑.

(defn setup []
  (qc/smooth)
  (qc/frame-rate 24)
  (qc/background 200))

(defn draw []
  (draw-world))

(qc/defsketch run
  :title "Circles!"
  :setup setup
  :draw draw
  :size [800 600]
  :renderer :opengl)
Run Code Online (Sandbox Code Playgroud)

首先,我C-c C-l用来加载文件; 这会创建一个草图窗口.然后我编辑我的draw-world功能,比如用不同的颜色绘制.我的问题是:

如何使用此新功能更新当前的Quil窗口?

*C-x C-e似乎不起作用.

clojure quil nrepl

4
推荐指数
1
解决办法
1089
查看次数

如何在emacs中清除并重新加载我的nrepl会话?

我正在使用emacs和nrepl.我该怎么做:

  1. 退出nrepl(目前我只是杀了缓冲区)

  2. 重新加载我正在使用的所有内容nrepl.

我试图解决的问题是,当我加载一个ns表单并且它有错误时,我无法加载正确的代码,因为它一直给我以前的错误.

emacs clojure nrepl

4
推荐指数
1
解决办法
2083
查看次数

Emacs + clojure.来自项目中所有源文件的自动完成数据

我一直在开发C#应用程序.商业IDE和工具提供了非常好的代码完成功能.我现在正在学习clojure,我真的很想念熟悉的工作流程.

所以,关于emacs.我安装了nrepl,ac-nreplclojure-mode.repl中自动完成工作正常.它也适用于当前缓冲区中的符号.但不适用于:

  1. 来自其他项目文件的符号
  2. 外部图书馆(由leiningen管理).

是否有任何现有的包完全涵盖案例1和2?

我的与clojure相关的配置:

;;;;;;;;;;;;;;;
;;; clojure ;;;
;;;;;;;;;;;;;;;

(require 'nrepl)

;; Configure nrepl.el
(setq nrepl-hide-special-buffers t)
(setq nrepl-popup-stacktraces-in-repl t)
(setq nrepl-history-file "~/.emacs.d/nrepl-history")

;; Some default eldoc facilities
(add-hook 'nrepl-connected-hook
      (defun pnh-clojure-mode-eldoc-hook ()
        (add-hook 'clojure-mode-hook 'turn-on-eldoc-mode)
        (add-hook 'nrepl-interaction-mode-hook 'nrepl-turn-on-eldoc-mode)
        (nrepl-enable-on-existing-clojure-buffers)))

;; Repl mode hook
(add-hook 'nrepl-mode-hook 'subword-mode)

;; Auto completion for NREPL
(require 'ac-nrepl)
(eval-after-load "auto-complete"
  '(add-to-list 'ac-modes 'nrepl-mode))

(add-hook 'nrepl-mode-hook 'ac-nrepl-setup)
(add-hook 'clojure-nrepl-mode-hook 'ac-nrepl-setup)

(define-key clojure-mode-map (kbd "C-<ret>") 'nrepl-eval-expression-at-point)

;(global-set-key (kbd …
Run Code Online (Sandbox Code Playgroud)

emacs autocomplete clojure nrepl

4
推荐指数
1
解决办法
2427
查看次数

连接到具有ring/compojure的clojure nREPL的问题

在Java 1.7.0_21 Java HotSpot(TM)64位服务器VM上运行Leiningen 2.3.4

我无法连接到nREPL服务器.

我使用了一个新项目lein new luminus,然后为drawbridge([com.cemerick/drawbridge "0.0.6"])添加了一个依赖项.

我加了一个处理器路线如下REPL(基于https://devcenter.heroku.com/articles/debugging-clojure):

(def drawbridge-handler
  (-> (cemerick.drawbridge/ring-handler)
      (wrap-keyword-params)
      (wrap-nested-params)
      (wrap-params)
      (wrap-session)))

(defn wrap-drawbridge [handler]
  (fn [req]
    (if (= "/repl" (:uri req))
      (drawbridge-handler req)
      (handler req))))
Run Code Online (Sandbox Code Playgroud)

并添加wrap-drawbridge到我的中间件.

然后我使用启动服务器

lein ring server-headless

连接似乎运行良好,因为执行GET请求会http:localhost:3000/repl产生响应:["[\n","\n]"]

但我无法连接到REPL:

> lein repl :connect 0.0.0.0:3000/repl
Connecting to nREPL at 0.0.0.0:3000/repl
Run Code Online (Sandbox Code Playgroud)

并且,过了一段时间:

SocketException The transport's socket appears to have lost its connection to the nREPL server
    clojure.tools.nrepl.transport/bencode/fn--4287/fn--4288 (transport.clj:95)
    clojure.tools.nrepl.transport/bencode/fn--4287 (transport.clj:95) …
Run Code Online (Sandbox Code Playgroud)

clojure leiningen read-eval-print-loop nrepl

4
推荐指数
1
解决办法
2620
查看次数

在 CIDER 中设置 Figwheel REPL 时遇到问题

我刚刚开始尝试使用以下模板制作一个简单的 cljs 应用程序:

lein new figwheel someproject -- --reagent

我希望在 cider 中使用 REPL 进行 cljs 开发,就像我通常在普通 clj 项目中使用的方式一样,所以我做了一些研究并最终得到了这里:

https://github.com/bhauman/lein-figwheel/wiki/Using-the-Figwheel-REPL-within-NRepl

我通读了说明,并验证了所有正确的依赖项都在 project.clj 中(无需更改任何内容,看起来模板添加了我需要的所有内容)。上面链接中的最后一步表明我需要将以下代码添加到我的 emacs 配置中:

(require 'cider)
(setq cider-cljs-lein-repl
      "(do (require 'figwheel-sidecar.repl-api)
           (figwheel-sidecar.repl-api/start-figwheel!)
           (figwheel-sidecar.repl-api/cljs-repl))")
Run Code Online (Sandbox Code Playgroud)

现在 - 我是一个 emacs 新手,所以我使用的设置仍然是我第一次从“ Clojure for the Brave and True ”中学到的:

https://github.com/flyingmachine/emacs-for-clojure

我试图首先将上面的代码片段放入 中~/.emacs.d/init.el,但是每当我尝试时M-x cider-jack-in ...,都没有cider-jack-in-clojurescript选择。我还尝试将代码片段放在 中~/.emacs.d/customizations/setup-clojure.el,这看起来更合乎逻辑,但结果相同。

我真的很想能够启动并运行这个 REPL,所以任何帮助将不胜感激。

clojure cider nrepl figwheel

4
推荐指数
1
解决办法
694
查看次数

将leiningen repl的结果复制到剪贴板中

偶尔我想在其他软件的repl中戳一个结果.有没有一种方便的方法将repl中运行的函数的结果复制到系统剪贴板?我知道我可以spit将结果输出到文件中.我正在使用mac os x.

macos clojure leiningen nrepl

0
推荐指数
1
解决办法
206
查看次数