首页 文章

名称空间中的IntelliJ(Cursive)REPL评估

提问于
浏览
2

我使用IntelliJ来编写Clojure . 我使用内置的REPL来运行我的代码 . 我不知道为什么,但是在我运行项目之后,我总是要做“将REPL NS切换到当前文件”然后“在REPL中加载文件”以便将REPL用于主命名空间 . 我想询问是否有办法避免这些点击并在运行结束后立即使用REPL .

1 回答

  • 3

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

    • 从REPL窗口底部的REPL命令行,按下与键绑定关联的组合键 Execute Current Statement (默认为 Ctrl-Enter

    • 在文件编辑器窗口中,将插入符号放在表单中,按下与键绑定关联的组合键 Send top form to REPL (默认为 Ctrl-Shift-P ,我将其反弹为 Ctrl-Enter

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

    • an( ns namespace)命令

    • 按下与键绑定关联的组合键 Switch REPL NS to current file (默认为 Ctrl-Shift-N

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

    • 将活动的REPL名称空间切换到文件名称空间

    • 评估REPL中的选定表格

    • 切换回先前激活的REPL名称空间 .

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

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

相关问题