Могу ли я подключить два emacs/slimes к одному и тому же экземпляру swank?

когда я начинаю торчать через leiningen, он принимает следующее соединение слизи и выключается. Мне бы очень хотелось, чтобы несколько экземпляров emacs соединялись с одним и тем же экземпляром swank. Я могу сделать это? могу ли я сделать это через leiningen?

Ответ 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 > также приведет к принятию одновременных подключений - и это произойдет.)