2010-12-06 61 views
3

我使用TRAMP很多emacs。但是,有時候服務器關閉,流量等待超時。通常是在ido模式下執行C-x-f以打開一個新文件。我不得不等待很長時間。是否有一種簡單的方法可以告訴TRAMP超時並讓ido模式繼續。我嘗試C-g,打開文件的選項永遠不會發生。如何強制Emacs流浪漢超時?

+0

無論`Cg`工作在這種情況下,可能取決於你的操作系統(和一些「性趣」(即非UNIX),平臺的Emacs是如何被編譯,甚至在SSH或其他幫助如何程序被編譯)。 – Gilles 2010-12-07 22:17:15

+0

啊。我使用cygwin的emacs和cygwin的scp。 – User1 2010-12-07 22:51:00

回答

0

雖然我經常使用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好的東西可以爲你工作。

+0

噢,這看起來可以工作,但由於某些原因失敗。壞消息! – User1 2010-12-07 16:24:09

0

我發現一個提示,可以將痛苦的等待時間限制在5秒。將此行添加到.ssh/config:

 
Host * 
    ServerAliveInterval 5 

但是,五秒鐘後仍然無法選擇文件。所以,當它失敗時,只需要將一個C-x b添加到未在關閉的服務器上打開的緩衝區,然後C-x-f就不會永久存在。

1

在流氓失速的(頻繁)情況下,我只是用C-g停止流程,終止流氓緩衝區,然後我可以保存該文件。

M-x kill-buffer RET *tramp.*