Как заставить тайм-аут бродяги Emacs?

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


person User1    schedule 06.12.2010    source источник
comment
Работает ли C-g в этой ситуации, может зависеть от вашей операционной системы (и от некоторых «экзотических» (то есть не-unix) платформ, от того, как был скомпилирован Emacs и, возможно, даже от того, как был скомпилирован ssh или другая вспомогательная программа).   -  person Gilles 'SO- stop being evil'    schedule 08.12.2010
comment
Ах. Я использую emacs cygwin и scp cygwin.   -  person User1    schedule 08.12.2010


Ответы (3)


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

M-x kill-buffer RET *tramp.*
person yPhil    schedule 17.09.2013
comment
Конечно; уничтожение буфера бродяг для соответствующего соединения является полезным общим подходом к устранению проблем с бродягами. (Я не уверен, что это лучшее решение для чего-то, что происходит очень часто, но, безусловно, стоит помнить об этом.) - person phils; 18.09.2013
comment
Когда я говорю часто, я на самом деле имею в виду, что когда я возвращаюсь к редактированию файла, открытого бродягой, спустя, скажем, более часа (ведьма не так часто), я почти уверен, что бродяга глубоко спит. С тех пор, как я обнаружил, что C-g и уничтожение буфера бродяг работает, мои отношения с emacs улучшились. Что помешало вам проголосовать за мой ответ, кстати? - person yPhil; 18.09.2013
comment
Я не проголосовал, потому что это казалось не имеющим прямого отношения к вопросу - уничтожение бродячего буфера может быть очень полезным, но оно не может вернуть к жизни удаленный сервер. - person phils; 18.09.2013

Я не сталкиваюсь с такой ситуацией тайм-аута, хотя я часто использую TRAMP. Попробуйте что-то вроде

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

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

person vpit3833    schedule 06.12.2010
comment
О, похоже, это сработает, но почему-то не получается. Облом! - person User1; 07.12.2010

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

Host *
     ServerAliveInterval 5

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

person User1    schedule 07.12.2010