【问题标题】:Sublime Text, SublimeREPL, Clojure & Windows 8Sublime Text、SublimeREPL、Clojure 和 Windows 8
【发布时间】:2014-02-10 07:36:39
【问题描述】:

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

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

【问题讨论】:

    标签: windows-8 clojure sublimetext3 sublimerepl


    【解决方案1】:

    请参阅this SublimeREPL issue 以获取有关我如何让 Clojure REPL 工作的说明,至少在 XP 上(我还没有在 Win7 或 8 上尝试过)。基本上,我编辑了 Clojure 的菜单文件,并将命令从 lein repl 更改为 lein trampoline run -m clojure.main,出于某种原因,这成功了。我还将路径更改为$file,这样您就可以打开一个REPL,而您的project.clj 是Sublime 中的当前选项卡,并且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"}]}
                ]
            }]
        }
    ]
    

    【讨论】:

    • 很好的指示,谢谢。只是为了澄清 Sublime 新手(像我一样) - 上面引用的 Packages/User/SublimeREPL/config/Clojure/Main.sublime-menu 路径如下:C:\Users\MY_USERNAME\AppData\Roaming\Sublime Text 3\ Packages\User\SublimeREPL\config\Clojure
    • 正确 - 我更新了答案以描述如何查找目录,因为对于不同的 Windows 用户/版本,它可能位于不同的位置。
    【解决方案2】:

    我用 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 不同,并且可能由于未知原因而失败。

    【讨论】:

    • 不幸的是,这不起作用 - 至少在我使用 Sublime Text 2 的机器上。它确实启动了 REPL(在 gitbash 中),但与 lein repl 一样,它从不执行任何表达式,只是挂起。
    猜你喜欢
    • 1970-01-01
    • 2014-12-19
    • 2015-07-29
    • 1970-01-01
    • 1970-01-01
    • 2012-10-06
    • 1970-01-01
    • 1970-01-01
    • 2013-11-26
    相关资源
    最近更新 更多