Sublime Text, SublimeREPL, Clojure и Windows 8

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

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


person duncsoz    schedule 20.01.2014    source источник


Ответы (2)


См. эту проблему SublimeREPL, чтобы узнать, как заставить работать 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"}]}
            ]
        }]
    }
]
person MattDMo    schedule 20.01.2014
comment
Отличная инструкция спасибо. Просто для разъяснений новичкам в Sublime (таким как я) - указанный выше путь Packages/User/SublimeREPL/config/Clojure/Main.sublime-menu выглядит следующим образом: C:\Users\MY_USERNAME\AppData\Roaming\Sublime Text 3\ Пакеты\Пользователь\SublimeREPL\config\Clojure - person duncsoz; 21.01.2014
comment
правильно - я обновил ответ, чтобы описать, как найти каталог, поскольку он может находиться в разных местах для разных пользователей / версий Windows. - person MattDMo; 21.01.2014

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

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

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

предполагая, что lein.sh находится в d:\

Команда lein trampoline иногда ведет себя не так, как lein repl, и может дать сбой по неизвестным причинам.

person kakarukeys    schedule 23.01.2015
comment
К сожалению, это не работает — по крайней мере, на моей машине, использующей Sublime Text 2. Он действительно запускает REPL (в gitbash), но, как и в случае с lein repl, он никогда не выполняет никаких выражений и просто зависает. - person Jan; 12.06.2015