【发布时间】:2013-01-17 06:05:04
【问题描述】:
也许这是一个不寻常的情况,但我喜欢连接到运行 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 框在哪里可以找到文件?我也尝试过像load ssh://... 这样在 REPL 中插入一个加载语句,但结果相同。
有没有人有一些建议,以便我可以在远程 Lisp 机器上编译本地文件?我认为这并不是什么新鲜事物,因为 Lisp 可以远程操作很长一段时间......
【问题讨论】:
-
您可以添加 lisp 代码以首先下载文件,可以直接在 lisp 中或使用系统命令(使用 ssh 和 tar 来获取 lisp 文件的目录)。如果这些 lisp 文件不占用太多空间,这可能是一个简单的解决方法。
标签: emacs common-lisp slime tramp