когда я запускаю чванство через leiningen, это принимает следующее соединение слизи, и прочь я иду. Я действительно хотел бы иметь несколько emacs подключений экземпляров к тому же шикарному экземпляру. Я могу сделать это? я могу сделать это через leiningen?
Ну, вы можете начать свой первый SLIME в обычном режиме, затем (требуется 'swank.swank)
(или, может быть, это требуется по умолчанию ... не уверен), выполните (swank.swank / start-repl порт)
с порт
, замененным на некоторый номер порта, и вы можете подключить второй экземпляр 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
Круто, нет? : -)
Обновление: О, кстати - (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 Swank; мне внезапно пришло в голову проверить, : dont-close
] также может вызвать одновременное подключение - и это так.)