我已经让 Leiningen 和 Clojure 在 Windows 8 上与 Sublime Text 分开工作(例如,我可以得到一个在 Windows PowerShell 中工作的 repl)。
我的问题是我无法让 SublimeREPL 在 SublimeText 中工作(REPL 加载但不执行任何操作)。是否有任何我可能遗漏的简单陷阱,或者如果没有,我可以遵循一系列步骤来排除故障?
我已经让 Leiningen 和 Clojure 在 Windows 8 上与 Sublime Text 分开工作(例如,我可以得到一个在 Windows PowerShell 中工作的 repl)。
我的问题是我无法让 SublimeREPL 在 SublimeText 中工作(REPL 加载但不执行任何操作)。是否有任何我可能遗漏的简单陷阱,或者如果没有,我可以遵循一系列步骤来排除故障?
请参阅此 SublimeREPL 问题以获取有关我如何使 Clojure REPL 工作的说明,至少在 XP 上(我还没有在 Win7 或 8 上尝试过)。基本上,我编辑了 Clojure 的菜单文件,并将命令从 更改lein repl
为lein 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"}]}
]
}]
}
]
我用 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 不同,并且可能由于未知原因而失败。