也许这是一个不寻常的情况,但我喜欢连接到运行 Clozure CL 的远程计算机并在那里编译一些文件,这些文件位于我的本地桌面上。
所以,我现在实现的是连接到我的远程 Lisp 盒子。我已经使用 Emacs 完成了它。因此,我在 .emacs 文件中添加了一些行:
(load (expand-file-name "~/quicklisp/slime-helper.el"))
(require 'slime)
(require 'tramp)
(setq tramp-default-method "ssh")
它似乎工作正常。设置我的 ssh 隧道后
ssh -L4005:127.0.0.1:4005 pi@192.168.0.100
我在本地 emacs 中从 Clozure CL 获得了正常的 REPL。
此外,如果我想通过 Emacs 中的 ssh 从网络中的任何 PC 加载文件,我可以做到。但是,如果我尝试使用最近(在 Emacs 中)加载的文件来编译缓冲区,我总是会得到这个错误:
File "/ssh:ingmar@192.168.0.103:/home/ingmar/Dokumente/Lisp/util.lisp" does not exist.
[Condition of type CCL::SIMPLE-FILE-ERROR]
Restarts:
0: [RETRY-LOAD] Retry loading "/ssh:ingmar@192.168.0.103:/home/ingmar/Dokumente/Lisp/util.lisp"
1: [SKIP-LOAD] Skip loading "/ssh:ingmar@192.168.0.103:/home/ingmar/Dokumente/Lisp/util.lisp"
2: [LOAD-OTHER] Load other file instead of "/ssh:ingmar@192.168.0.103:/home/ingmar/Dokumente/Lisp/util.lisp"
3: [RETRY] Retry SLIME REPL evaluation request.
4: [*ABORT] Return to SLIME's top level.
5: [ABORT-BREAK] Reset this thread
--more--
Backtrace:
0: (NIL #<Unknown Arguments>)
1: (CCL::%LOAD "/ssh:ingmar@192.168.0.103:/home/ingmar/Dokumente/Lisp/util.lisp" NIL NIL :ERROR :DEFAULT NIL)
2: (NIL #<Unknown Arguments>)
如何告诉远程 Lisp 框在哪里可以找到文件?我也尝试在 REPL 中插入一个 load 语句load ssh://...
,但结果相同。
有没有人有一些建议可以做什么,以便我可以在远程 Lisp 机器上编译本地文件?我认为这并不是什么新鲜事物,因为 Lisp 可以远程操作很长一段时间......