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

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

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

此外,我无法在 find-file 中使用相同的协议(protocol)打开任何其他文件,就像上面的“scp”一样。

我发现的一些解决方法是首先删除 ~/.emacs.d/tramp 文件,该文件有时有效,有时在多次挂起/恢复循环后它不存在。

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

有什么建议么?

最佳答案

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

使用 ido-switch-buffer 这真的很容易,因为您可以在迷你缓冲区中完成所有操作 - 输入几个字母以找到 Tramp 缓冲区,然后输入 C-k 来终止它。

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



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

关于ubuntu - Emacs TRAMP 在挂起/恢复后挂起保存和打开当前缓冲区,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23582421/

10-13 00:51