将多个不同的终端连接到同一个粘液实例

时间:2014-06-22 06:24:49

标签: emacs slime

在使用emacs和史莱姆时,我仍然是新手。

我想知道是否有办法在本地端口上启动lisp(比如SBCL),然后将多个不同的粘液会话连接到它?

例如,如果我使用tmux / screen并希望在每个窗口之间有不同的emacs会话,我是否能够将所有slime实例连接到同一个lisp,以便所有emacs会话共享一个repl允许我要在任何emacs会话中编译,一个正在运行的repl会有这些更改吗?

2 个答案:

答案 0 :(得分:2)

我正在使用LispWorks 6.1 32位专业版。我更喜欢在多个tmux会话中使用(Spac)emacs进行编辑,对于我所处理的每个项目都使用一个会话。

这些是我遵循的步骤:

  1. 启动LispWorks Listener REPL。

  2. 加载swank而不通过emacs路线:

    (load "/path/to/swank-loader.lisp")
    (swank-loader:init)
    (setf swank:*use-dedicated-output-stream* nil)
    (swank:create-server :port 4005  :dont-close t)
    
  3. 然后在我的iTerm标签中,对于某个项目1使用tmux会话,我做了M-x slime- 按照步骤2连接并连接到主机和端口。

  4. 使用另一个lisp项目代码重复步骤3以进行另一个tmux会话。

  5. 通过这种设置,我可以在同一个lisp图像中加载我正在处理的多个项目的代码。到目前为止,我没有发现任何重大问题。

答案 1 :(得分:0)

这取决于您使用的lisp系统,它支持的功能,即您的SBCL是否启用了多线程(参见(member :sb-thread *features*)SWANK:*COMMUNICATION-STYLE*的设置,参见Slime docs