2014-05-10 50 views
4

在Ubuntu 12.10上运行带有Tramp(2.2.6-24.3)的Emacs(24.3.1)时,我将通过Tramp打开一堆远程文件例如:Emacs Tramp暂停/恢复后保存并打开当前缓冲区

m-x find-file: /scp:[email protected]:~/file.txt 

在我的笔记本电脑上挂起/恢复循环后,我会回到Emacs并开始在开放缓冲区中工作。一旦我保存或自动保存它会冻结,并将显示“参数超出范围(000 - 000)”(这条消息来自内存,零表示它显示的数字将在我下次编辑时编辑)错误并且不保存。任何后续尝试都会挂起。

另外,我无法在find-file中使用相同协议打开任何其他文件,如上面'scp'中的情况。

我发现的一些解决方法是首先删除〜/ .emacs.d/tramp文件,该文件有时会起作用,并且有多次在多次暂停/恢复周期后它不在那里。

另一个解决方法是在打开文件时使用另一种协议,因此在上面的find-file行中,我将使用'ssh'或'scpc'。这仅用于打开新缓冲区,不用于保存当前缓冲区,所以我通常会关闭文件的缓冲区,然后使用我提到的不同协议重新打开它。

有什么建议吗?

回答

4

我还没有看到“参数超出范围”的错误,但是当我在连接中断后挂起时,我通过查杀协议/主机的Tramp缓冲区来取得成功。它通常被命名为*tramp/scpc hostname*。需要通信的文件缓冲区上的下一个操作将重新建立连接。

这对ido-switch-buffer非常简单,因为您可以在迷你缓冲区中完成所有操作 - 输入几个字母来查找Tramp缓冲区和C-k以杀死它。重置连接


的替代(也许清洁器)的方法是使用“MX流浪汉-清理-此连接”:

流浪汉-清理-这个连接是一个交互式自动加载编译为 `tramp-cmds.el'中的Lisp函数。

(流浪汉在清理这个连接)

刷新当前缓冲区的 连接的所有连接相关的对象。

另请参阅“M-x tramp-cleanup-all-connections”和“M-x tramp-cleanup-all-buffers”。

+0

刚刚有机会尝试这个,它的工作。另外我注意到,它的工作后,我做了另一个暂停/恢复周期,它没有挂......这样工作,所以除非有其他人有永久修复这对我有效。谢谢@rhashimoto。 – justCookin

相关问题