2010-12-06 3 views
3

Я использую TRAMP много с emacs. Однако иногда сервер идет вниз, и бродяга сидит в ожидании таймаута. Обычно после создания C-x-f в ido-режиме открывается новый файл. Я должен ждать досадно долгое время. Есть ли простой способ сообщить TRAMP о тайм-ауте и продолжить идо-режим. Я пробовал C-g, и возможность открыть файл никогда не будет.Как заставить тайм-аут Emacs?

+0

ли `работает Cg` в этой ситуации может зависеть от вашей операционной системы (и на некоторые«экзотические»(то есть не-Unix), платформы, как Emacs был составлен, и, возможно, даже как SSH или другой помощник программа была скомпилирована). – Gilles 2010-12-07 22:17:15

+0

Ах. Я использую emacs cygwin и scp cygwin. – 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) 

я использовал this и this, чтобы сделать это предложение. что-то лучше, чем keyboard-quit может работать для вас.

+0

О, похоже, это сработает, но по какой-то причине оно не срабатывает. Вот досада! – User1 2010-12-07 16:24:09

0

Я нашел один намек, который может ограничить болезненное ожидание до 5 секунд. Добавьте эту строку в .ssh/конфигурации:

 
Host * 
    ServerAliveInterval 5 

Однако через пять секунд, и вы все еще не можете выбрать файл. Таким образом, когда он выходит из строя, просто выполните C-x b в буфер, который не открыт на сбитом сервере, а C-x-f оттуда не будет навсегда.

1

В случаях (частых) случаях, когда бродячие лотки, я просто останавливаю процесс с помощью C-g, убиваю буфер трамбов, и затем я могу сохранить файл.

M-x kill-buffer RET *tramp.*