когда я начинаю торчать через leiningen, он принимает следующее соединение слизи и выключается. Мне бы очень хотелось, чтобы несколько экземпляров emacs соединялись с одним и тем же экземпляром swank. Я могу сделать это? могу ли я сделать это через leiningen?
Могу ли я подключить два emacs/slimes к одному и тому же экземпляру swank?
Ответ 1
Ну, вы можете начать свой первый SLIME нормально, затем (require 'swank.swank)
(или, возможно, он по умолчанию требуется... не уверен), (swank.swank/start-repl port)
с port
заменить на какой-то номер порта, и вы можете подключить второй экземпляр SLIME для вновь созданного REPL.
Я сделал это только сейчас, когда один Emacs, подключившийся к REPL, начал с lein swank
, (swank.swank/start-repl 4006)
в первом Emacs, Mx slime-connect во втором Emacs (предоставив 4006 в качестве номера порта), затем Я мог бы сделать это:
; first Emacs
(def x 5)
; second Emacs
x ; evaluates to 5
(def y 1234)
; first Emacs
y ; evaluates to 1234
Круто, нет?: -)
Обновление: О, BTW - (swank.swank/start-repl)
запускает новый REPL в фоновом режиме и не блокирует REPL, который вы используете для его выполнения. Возвращаемое значение nil
, поэтому я не уверен, как убить новый REPL...
(Обновление 2: Удалено то, о чем я не уверен.)
Обновление 3: Несмотря на то, что вышеупомянутый метод является абсолютно общим, поскольку он позволяет подключать дополнительный клиент независимо от того, как был запущен оригинальный экземпляр Swank, было бы удобнее запустить Swank с помощью команды
lein swank 4005 "localhost" :dont-close true
Аргументы имени порта и узла должны быть указаны явно, если :dont-close true
должен быть передан. 4005
и "localhost"
являются значениями по умолчанию.
Это позволит отключиться от Swank и повторно подключиться позже, но также и для одновременного подключения нескольких клиентов.
(Я только заметил, что это возможно при ответе на этот новый вопрос о том, как включить пересоединение с Leiningen-start Swank, мне вдруг пришло в голову проверить, t212 > также приведет к принятию одновременных подключений - и это произойдет.)