【问题标题】:IntelliJ (Cursive) REPL evaluation in namespace命名空间中的 IntelliJ(草书)REPL 评估
【发布时间】:2016-02-22 15:55:24
【问题描述】:

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

【问题讨论】:

    标签: intellij-idea clojure read-eval-print-loop cursive


    【解决方案1】:

    在 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 命令行输入它一样,需要手动切换命名空间。

    【讨论】:

    • 您是什么意思“与‘将顶部表单发送到 REPL’相关的击键”?我没看懂你的回答。我想从 REPL 命令行发送命令。我希望一旦我运行 REPL,“将 REPL NS 切换到当前文件”和“在 REPL 中加载文件”操作会自动发生。
    • 您想发送命令 REPL,但这不必 REPL 命令行完成,它可以从源代码编辑器窗口也是如此。
    猜你喜欢
    • 2015-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多