【问题标题】:Emacs Tramp hangs on saving & opening a current buffer after suspend/resumeEmacs Tramp 在挂起/恢复后挂起保存和打开当前缓冲区
【发布时间】:2014-05-10 14:44:43
【问题描述】:

在 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”。这只是为了打开新的缓冲区,而不是保存当前的缓冲区,所以我通常会关闭文件的缓冲区,然后使用我提到的不同协议重新打开它。

有什么建议吗?

【问题讨论】:

    标签: ubuntu emacs tramp


    【解决方案1】:

    我没有看到“args out of range”错误,但是当我在连接中断后挂起时,我已经成功通过终止协议/主机的 Tramp 缓冲区。它通常被命名为*tramp/scpc hostname*。需要通信的文件缓冲区上的下一个操作会重新建立连接。

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


    重置连接的另一种(可能更简洁)方法是使用“M-x tramp-cleanup-this-connection”:

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

    (tramp-cleanup-this-connection)

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

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

    【讨论】:

    • 刚刚有机会尝试一下,它奏效了。我还注意到在它工作后我做了另一个暂停/恢复周期并且它没有挂起......所以除非其他人有永久修复这对我有用。谢谢@rhashimoto。
    猜你喜欢
    • 1970-01-01
    • 2013-12-20
    • 1970-01-01
    • 2011-12-06
    • 2020-04-19
    • 2011-11-10
    • 2015-05-23
    • 2020-07-18
    • 1970-01-01
    相关资源
    最近更新 更多