使用SLIME在远程Emacs上完成制表符

使用SLIME在远程Emacs上完成制表符,emacs,lisp,slime,tramp,swank,Emacs,Lisp,Slime,Tramp,Swank,在远程SWANK上的SLIME repl处,键入: (公开)~/ 然后点击标签 这在我的本地文件系统上带来了一个自动完成的缓冲区。有人知道如何让它显示远程系统上的文件吗 当前my.emacs的外观如下所示: (load (expand-file-name "~/quicklisp/slime-helper.el")) (setq inferior-lisp-program "sbcl") (require 'slime) (slime-setup '(slime-fancy slime-tram

在远程SWANK上的SLIME repl处,键入:

(公开)~/

然后点击标签

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

当前my.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)  

我已经在谷歌上搜索并尝试了一些随机的东西,非常感谢您的帮助!

您需要提供一个新的函数实现
slime可能作为文件名完成。它的默认实现调用Emacs函数
comint replace by expanded filename


这个问题最普遍的解决方案是查询远程Lisp中的文件系统数据。不过,编写一个函数,通过与远程系统的连接将完成重定向可能会更容易。

我认为这不是SLIME的自动完成功能。您是否会碰巧有
自动完成
or安装了类似的软件包?或者可能只是Emacs基于其他缓冲区中使用的相同前缀完成它的方式?@wvxvw没有安装自动完成,尽管我一直想尝试它-看起来很酷。在浏览comint.el、slime.el以及tramp-sh.el之后,回答得很好@rörd(因为远程完成在那里工作)-我需要学习更多的elisp,然后才能解决类似的问题。