7

我已经让 Leiningen 和 Clojure 在 Windows 8 上与 Sublime Text 分开工作(例如,我可以得到一个在 Windows PowerShell 中工作的 repl)。

我的问题是我无法让 SublimeREPL 在 SublimeText 中工作(REPL 加载但不执行任何操作)。是否有任何我可能遗漏的简单陷阱,或者如果没有,我可以遵循一系列步骤来排除故障?

4

2 回答 2

7

请参阅此 SublimeREPL 问题以获取有关我如何使 Clojure REPL 工作的说明,至少在 XP 上(我还没有在 Win7 或 8 上尝试过)。基本上,我编辑了 Clojure 的菜单文件,并将命令从 更改lein repllein trampoline run -m clojure.main,出于某种原因,这成功了。我还将路径更改为,$file以便您可以在您project.clj是 Sublime 中的当前选项卡时打开 REPL,并且 REPL 应该继承项目的设置。

作为参考,完整的Packages/User/SublimeREPL/config/Clojure/Main.sublime-menu文件(Packages可通过 访问Preferences -> Browse Packages...)如下:

[
     {
        "id": "tools",
        "children":
        [{
            "caption": "SublimeREPL",
            "mnemonic": "r",
            "id": "SublimeREPL",
            "children":
            [
                {"caption": "Clojure",
                 "id": "Clojure",
                 "children":[
                    {"command": "repl_open",
                     "caption": "Clojure Trampoline",
                     "id": "repl_clojure",
                     "args": {
                        "type": "subprocess",
                        "encoding": "utf8",
                        "cmd": {"windows": ["lein.bat", "trampoline", "run", "-m", "clojure.main"],
                                "linux": ["lein", "repl"],
                                "osx":  ["lein", "repl"]},
                        "soft_quit": "\n(. System exit 0)\n",
                        "cwd": {"windows":"$file_path",
                                "linux": "$file_path",
                                "osx": "$file_path"},
                        "syntax": "Packages/Clojure/Clojure.tmLanguage",
                        "external_id": "clojure",
                        "extend_env": {"INSIDE_EMACS": "1"}
                        }
                    },
                    {"command": "clojure_auto_telnet_repl",
                     "id": "repl_clojure_telnet",
                     "caption": "Clojure-Telnet"}]}
            ]
        }]
    }
]
于 2014-01-20T23:17:33.657 回答
1

我用 Git Bash Shell 解决了这个问题。我使用了 leiningen 的 shell 脚本版本而不是 lein.bat

这是我使用的命令:

["C:\\Program Files\\Git\\bin\\sh.exe", "-l", "--", "/d/lein.sh", "repl"]

假设 lein.sh 在 d:\

lein trampoline 命令的行为有时与 lein repl 不同,并且可能由于未知原因而失败。

于 2015-01-23T02:54:11.067 回答