2014-01-20 7 views
7

У меня есть и Leiningen & Clojure, работающий на Windows 8 отдельно от Sublime Text (например, я могу получить замену, работающую в Windows PowerShell).Sublime Text, SublimeREPL, Clojure & Windows 8

Моя проблема в том, что я не могу заставить SublimeREPL работать в SublimeText (REPL загружается, но не делает ничего). Существуют ли какие-либо простые ловушки, которые могут отсутствовать, или, если это не так, есть ряд шагов, которые я мог бы выполнить для устранения неполадок?

ответ

7

Для получения информации о том, как я получил Clojure REPL для работы, по крайней мере, на XP (я еще не пробовал это на Win7 или 8), см. this SublimeREPL issue. В основном, я отредактировал файл меню для 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 newbies (например, я) - путь Packages/User/SublimeREPL/config/Clojure/Main.sublime, указанный выше, выглядит следующим образом: C: \ Users \ MY_USERNAME \ AppData \ Roaming \ Sublime Text 3 \ Пакеты \ Пользователь \ SublimeREPL \ config \ Clojure – duncsoz

+0

правильный - я обновил ответ, чтобы описать, как найти каталог, поскольку он может быть в разных местах для разных пользователей/версий Windows. – MattDMo

1

Я решил эту проблему с помощью Git Bash Shell. Я использовал версию сценария оболочки из Leiningen вместо lein.bat

Это команда я использую:

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

предполагая lein.sh в D: \

Lein команда батут иногда ведет себя в отличие от лейн-реплики и может потерпеть неудачу по неизвестным причинам.

+0

К сожалению, это не сработает - по крайней мере, на моей машине, используя Sublime Text 2. Он действительно запускает REPL (в gitbash), но как и с 'lein repl', он никогда не выполняет никакого выражения и просто зависает. – Jan

Смежные вопросы