2

I use IntelliJ in order to write Clojure. I use the built-in REPL to run my code. I don't know why, but after I run my project, I always have to do “Switch REPL NS to current file” and then "Load file in REPL" in order to use the REPL for main namespace. I want to ask whether there is a way avoid these clicks and working with the REPL immediately after the run is over.

4

1 回答 1

3

在 Cursive 中,有两种方式可以将表单发送到当前活动的 REPL:

  1. 在 REPL 窗口底部的 REPL 命令行中,按下与键绑定关联的组合键Execute Current Statement(默认Ctrl-Enter
  2. 在文件编辑器窗口中,将插入符号放入表单中,按下与键绑定关联的组合键Send top form to REPL(默认Ctrl-Shift-P,我将其重新绑定到Ctrl-Enter

在 REPL 命令行中,表单将始终在 REPL 的当前命名空间中进行评估(user默认情况下)。如果您想在另一个命名空间中评估表单,您首先必须通过以下任一方式切换到该命名空间:

  • 一个(ns 命名空间)命令
  • 按下与键绑定关联的组合键Switch REPL NS to current file(默认Ctrl-Shift-N

但是,当您从文件编辑器发送表单时,它可以从文件本身推断您希望它在哪个命名空间中执行。在后台,它将:

  1. 将活动的 REPL 命名空间切换到文件命名空间
  2. 评估 REPL 中选定的表单
  3. 切换回之前激活的 REPL 命名空间。

这样您就不必在 REPL 中切换名称空间,并且名称空间混淆的可能性要小得多。

但是,只有在未选中该设置时才会这样做Evaluate forms in REPL namespace。如果不是,它将评估当前 REPL 命名空间中的表单,就像您通过 REPL 命令行输入它一样,需要手动切换命名空间。

于 2016-02-23T16:07:03.037 回答