问题标签 [nrepl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1173 浏览

clojure - 如何使用 Emacs/nrepl/Quil 在 Clojure 中编写代码?

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

首先,我使用C-c C-l加载文件;这将创建一个草图窗口。然后我编辑我的draw-world函数,比如说,用不同的颜色绘制。我的问题是:

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

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

0 投票
2 回答
256 浏览

emacs - 粘贴clojure评估结果时,如何使emacs键盘宏正常工作?

emacs lisp 有一个非常有用的功能,您可以在其中评估表达式的结果并将结果直接粘贴到缓冲区中。

假设我想检查附加作品。然后我输入:

我定义了键盘宏:

如果我然后将点放在表达式上方,然后按 F4 执行宏,则表达式变为:

这是一个很好的回归测试。

不幸的是,在 clojure/nrepl 缓冲区中执行的相同键盘宏会导致:

以及来自 clojure 的关于无法解析符号的错误is=

所以我认为事情的排序发生了一些奇怪的事情,宏正试图评估错误的事情。

任何人都可以让它与clojure一起使用吗?(实际上解决了一般问题,以便任意键盘宏可以C-u C-x C-e像使用 emacs lisp 一样正常工作)


编辑因为人们似乎误解了:

手动按键在 elisp 或 clojure 缓冲区中都可以正常工作。在一个带有 emacs lisp 的 Cu Cx Ce evals 和在外部 clojure 过程中的其他 evals 中。

尝试运行包含 Cu Cx Ce 的键盘宏(记录在 clojure 缓冲区中)时出现问题

在 clojure 缓冲区中运行宏,事情会以某种方式重新排序。即使 eval-paste 尚未完成,看起来宏可能仍在执行。

我想知道是否有一种方法可以强制键盘宏(或相应的功能)以与手动相同的顺序执行。

如有必要,我很乐意将键盘宏转换为适当的 elisp 函数。

0 投票
1 回答
235 浏览

opengl - Clojure 在运行时编辑代码拆分为不同的文件

我最近一直在尝试使用 lwjgl 库在 Clojure 中测试 OpenGL。我从这段代码开始:

这在 emacs 中运行良好,使用 nREPL 插件,我可以启动它并在它运行时更改某些内容(例如调用glClearColor)。

我决定把它分成两个单独的文件,这样我就可以重用这个init-window函数:

然后在一个单独的文件中

然而,这并不能让我在跑步时改变。我必须关闭窗口然后-main再次执行以查看更改。

到目前为止,我已经尝试将最后两个代码摘录放入一个文件中,但也没有成功。但是,如果我将调用从更改update-fn为我的更新函数 ( update) 的名称,而它们在同一个文件中,我可以在它运行时进行更改。

我猜这是因为当我创建带有更新函数的地图时,它传递了实际函数,所以如果我update通过使用 nREPL 插件重新定义来评估它,则没有效果,因为该mainloop函数正在使用该函数 - 不查找符号update并使用它。

有没有办法在两个文件之间拆分代码,同时仍然能够在运行时更改代码?

0 投票
1 回答
482 浏览

maven - 如何让 clojure:nrepl 与 clojure-maven-plugin 一起使用?

如果我输入:

我得到:

哪里clojure-maven-nrepl.pom.xml是:

我应该改变什么才能让它工作?

0 投票
0 回答
68 浏览

macos - Emacs + nRepl + ClojureMode 上的组合键

我是 Emacs + Lein + nRepl + ClojureMode 组合的新手,我似乎不知道为什么我不能在 clojure 程序缓冲区中运行 Cc C-, 组合键。它根本不需要 C-,。其他快捷方式,例如 Cc Ck 工作得很好。

我在 Mac OS X Mountain Lion 上使用来自 Terminal OS X 的 Emacs,如果有人可能觉得这很有用的话。

谢谢你。

0 投票
2 回答
1697 浏览

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

您知道当您在 bash 中点击向上箭头时,它会如何填写您输入的最后一个命令吗?有什么办法可以在 nrepl 中做到这一点?

到目前为止,我一直在进行反向搜索 ( C-r),输入相关行的前几个字符,终止行 ( C-k),跳到缓冲区的末尾 ( M->) 并拉出终止行 ( C-y)。有没有更简单的方法来做到这一点?

0 投票
1 回答
17577 浏览

emacs - 如何使 nrepl-ritz-jack-in 通过 TRAMP / Emacs 远程工作

我想要的是:

我在远程站点上有一个 clojure 程序,我们称之为mccarthy. 我想要做的是nrepl-ritz从我的笔记本电脑连接到一个,最好使用nrepl-ritz-jack-in. 插孔适用于本地程序,但似乎无法连接到远程程序。

尝试 1

C-x C-f/mccarthy:code/program/project.clj

(require 'nrepl-ritz)

M-x nrepl-ritz-jack-in

结果

Emacs 似乎挂起。如果我去*nrepl-server*缓冲区,我会看到:

(还有很多其他的线路......)

drip在我的笔记本电脑上使用,但不是在mccarthy,所以很明显nrepl-ritz-jack-in没有检测到它是一个远程文件。但是,在这种情况下,常规的 oldnrepl-jack-in将按预期工作。

尝试 2

我还尝试开始nrepl-ritz使用leinon mccarthy

从我的笔记本电脑我转发一个端口,以便本地42874连接42874mccarthy

然后,从我本地的 Emacs 中:

M-x nrepl

主持人:127.0.0.1

港口:42874

这给了我一个联系:

所以为了测试它,我运行

M-x nrepl-ritz-threads

它给了我一个很好的线程表。

M-x nrepl-ritz-break-on-exception

结果

这会挂起,但有时会显示一个隐藏的调试缓冲区,其中有一些可用的重新启动。如果我告诉它将异常传递回程序,它永远不会将控制权交还给 REPL。

我已经进行了大量搜索,但找不到比“确保 lein 在您的路径上”更具体的内容(我确实在两台机器上都这样做了......)。

0 投票
2 回答
2128 浏览

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

我正在使用 emacs 和 nrepl。我该如何执行以下操作:

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

  2. 重新加载我在nrepl.

我试图通过这样做来解决的问题是,当我加载了一个ns表单并且它有一个错误时,我无法加载正确的代码,因为它一直给我之前的错误。

0 投票
2 回答
328 浏览

emacs - 如何防止 JFrame/EXIT_ON_CLOSE 杀死 nrepl 服务器?

编辑使用 DISPOSE_ON_CLOSE 不是我所追求的,因为它们我遇到了“逆”问题:当我关闭 JFrame 时,REPL 保持活动状态(这很好),但是当从 REPL 外部启动时它保持活动状态(这很糟糕)。

我正在 Clojure 中编写一个 Swing 应用程序,我发现从 REPL( Emacs 下的nrepl)和 REPL 外部(例如通过使用lein run或运行独立的.jar)测试东西都很方便。

当我不从 REPL 启动我的 Swing 应用程序时,我发现将默认关闭操作设置为 EXIT_ON_CLOSE 很方便。例如:

所以我可以点击 JFrame 的关闭按钮并完成我的应用程序。

但是显然(我可能对此有误,但我认为我没有看到任何东西)从 REPL 运行时这是有问题的:一旦我单击 JFrame 的关闭按钮,我显然会杀死nrepl服务器并必须重新打开一个新的nrepl _

知道我需要从nrepl和任何 REPL 外部进行测试,我该如何解决我的问题?

我是否应该“检测到”我从 REPL 运行,然后不将默认关闭操作设置为退出?或者?

0 投票
3 回答
121 浏览

clojure - 为什么过滤器卡在 nrepl 中?

在此处输入图像描述

为什么最后一个表达式永远卡在 nrepl 中(我想它永远不会停止)。我必须 Ctrl+c Ctrl+c 才能停止它。