【问题标题】:How to force an Emacs tramp time out?如何强制 Emacs Trap 超时?
【发布时间】:2010-12-06 21:46:15
【问题描述】:

我在 emacs 中经常使用 TRAMP。但是,有时服务器会出现故障,并且 tramp 会等待超时。通常是在 ido 模式下执行C-x-f 以打开新文件之后。我不得不等待令人讨厌的很长一段时间。有没有一种简单的方法可以告诉 TRAMP 超时并让 ido-mode 继续。我尝试C-g 并没有出现打开文件的选项。

【问题讨论】:

  • C-g 在这种情况下是否有效可能取决于您的操作系统(以及某些“外来”(即非 unix)、平台、Emacs 的编译方式,甚至可能取决于 ssh 或其他帮助程序已编译)。
  • 啊。我用的是cygwin的emacs和cygwin的scp。

标签: emacs tramp


【解决方案1】:

在那些(常见的)tramp 停止的情况下,我只是用C-g 停止进程,杀死 tramp 缓冲区,然后我可以保存文件。

M-x kill-buffer RET *tramp.*

【讨论】:

  • 确实;杀死相关连接的流浪汉缓冲区是解决流浪汉问题的一种有用的通用方法。 (我不确定这是否是解决经常发生的事情的最佳解决方案,但请牢记这一点。)
  • 当我说频繁的时候,我真正的意思是当我说,一个多小时后(女巫不是那么频繁)我回到编辑一个流浪汉打开的文件时我很确定流浪汉睡得很沉。自从我发现 C-g & kill the tramp buffer 有效后,我与 emacs 的关系就得到了改善。是什么阻止你支持我的答案顺便说一句?
  • 我没有投赞成票,因为它似乎与问题没有直接关系——杀死流浪汉缓冲区可能非常有用,但它不能让远程服务器恢复活力。跨度>
【解决方案2】:

虽然我经常使用 TRAMP,但我不会遇到这种超时情况。尝试类似

(defun tramp-find-file-timeout ()
  (when tramp
    (with-timeout (4)
      (keyboard-quit))))
(add-hook 'find-file-hook 'tramp-find-file-timeout)

我使用thisthis 提出了这个建议。比keyboard-quit 更好的东西可能对你有用。

【讨论】:

  • 哦,这看起来可行,但由于某种原因它失败了。无赖!
【解决方案3】:

我发现了一个可以将痛苦的等待限制在 5 秒内的提示。将此行添加到 .ssh/config:

主持人 * ServerAliveInterval 5

但是,五秒钟后,您仍然无法选择文件。因此,当它失败时,只需对停机服务器上未打开的缓冲区执行 C-x b 即可,而从那里发出的 C-x-f 不会永远存在。

【讨论】:

    猜你喜欢
    • 2021-11-16
    • 1970-01-01
    • 2011-04-14
    • 1970-01-01
    • 2011-09-22
    • 1970-01-01
    • 1970-01-01
    • 2011-06-18
    • 2021-05-13
    相关资源
    最近更新 更多