使用SLIME在远程Emacs上完成选项卡

时间:2013-09-07 05:42:51

标签: emacs lisp slime tramp swank

在远程SWANK上的SLIME repl上,输入:

(打开“〜/

然后点击TAB

这会在我的本地文件系统上显示一个带有自动完成的缓冲区。有人知道如何让它显示远程系统上的文件吗?

目前我的.emacs看起来像这样:

(load (expand-file-name "~/quicklisp/slime-helper.el"))
(setq inferior-lisp-program "sbcl")
(require 'slime)
(slime-setup '(slime-fancy slime-tramp slime-asdf))
(slime-require :swank-listener-hooks)
(push (slime-create-filename-translator :machine-instance "ws1"
                    :remote-host "ws1"
                    :username "myusername")
      slime-filename-translations)  

我一直在谷歌搜索和尝试随机的东西,任何帮助非常感谢!

1 个答案:

答案 0 :(得分:1)

您需要提供函数slime-maybe-complete-as-filename的新实现。它的默认实现调用Emacs函数comint-replace-by-expanded-filename

此问题的最通用解决方案是查询远程Lisp以获取文件系统数据。编写一个简单地通过TRAMP连接将完成重定向到远程系统的函数可能会更容易。