在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'。这仅用于打开新缓冲区,而不是用于保存当前缓冲区,因此我通常会关闭文件的缓冲区,然后使用我提到的不同协议重新打开它。
有什么建议吗?
答案 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"。