命名空间中的 IntelliJ(草书)REPL 评估

IntelliJ (Cursive) REPL evaluation in namespace

我使用 IntelliJ 来编写 Clojure。我使用内置的 REPL 来 运行 我的代码。我不知道为什么,但是在我 运行 我的项目之后,我总是必须执行“将 REPL NS 切换到当前文件”,然后 "Load file in REPL" 才能将 REPL 用于主命名空间。我想问一下是否有办法避免这些点击并在 运行 结束后立即使用 REPL。

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

  1. 从 REPL 底部的 REPL 命令行 window,按下与键绑定关联的组合键 Execute Current Statement(默认 Ctrl-Enter
  2. 从文件编辑器 window 中,将插入符放入表格中,按下与键绑定关联的组合键 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命令行输入它一样,需要手动切换命名空间。