2014-01-20 50 views
7

我有兩個Leiningen & Clojure在Windows 8上與Sublime Text分開工作(例如,我可以在Windows PowerShell中使用repl工作)。崇高的文字,SublimeREPL,Clojure和Windows 8

我的問題是,我無法獲得在SublimeText中工作的SublimeREPL(REPL加載但不會執行任何操作)。是否有任何簡單的陷阱可能會丟失,或者如果沒有,我是否可以按照一系列步驟排除故障?

回答

7

請參閱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"}]} 
      ] 
     }] 
    } 
] 
+0

偉大的指示,謝謝。爲了澄清Sublime新手(像我一樣) - 上面引用的Packages/User/SublimeREPL/config/Clojure/Main.sublime-menu路徑如下:C:\ Users \ MY_USERNAME \ AppData \ Roaming \ Sublime Text 3 \ Packages \ User \ SublimeREPL \ config \ Clojure – duncsoz

+0

正確 - 我更新了答案以描述如何查找目錄,因爲它可能位於不同用戶/ Windows版本的不同位置。 – MattDMo

1

我解決了這個問題在GIT bash外殼。我已經使用leiningen代替lein.bat

的shell腳本版本,這是命令我使用:

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

假設lein.sh是在d:\

雷音蹦牀命令有時表現與lein repl不同,並且可能由於未知原因而失敗。

+0

不幸的是,這不起作用 - 至少在我的機器上使用Sublime Text 2。它確實啓動了REPL(在gitbash中),但與lein repl一樣,它從不執行任何表達式,只是掛起。 – Jan