Emacs Tramp依赖于拯救和保护暂停/恢复后打开当前缓冲区

时间:2014-05-10 14:44:43

标签: ubuntu emacs tramp

在Ubuntu 12.10上使用Tramp(2.2.6-24.3)运行Emacs(24.3.1)时,我将通过Tramp打开一堆远程文件,例如:

m-x find-file: /scp:user@example.com:~/file.txt

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

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

我发现的一些解决方法是首先删除〜/ .emacs.d / tramp文件,它有时会起作用,有时候在多次暂停/恢复循环之后它不存在。

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

有什么建议吗?

1 个答案:

答案 0 :(得分:4)

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

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


重置连接的另一种方法(也许更干净)是使用" M-x tramp-cleanup-this-connection":

  

tramp-cleanup-this-connection是一个交互式自动加载编译   Lisp函数在`tramp-cmds.el'。

     

(流浪汉-清理-此连接)

     

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

另见" M-x tramp-cleanup-all-connections"和" M-x tramp-cleanup-all-buffers"。