Я часто использую TRAMP с emacs. Однако иногда сервер выходит из строя, и бродяга сидит в ожидании тайм-аута. Обычно после выполнения C-x-f
в режиме ido открывается новый файл. Приходится ждать раздражающе долго. Есть ли простой способ указать TRAMP на тайм-аут и продолжить работу в режиме ido. Пробую C-g
, а возможность открыть файл так и не появляется.
Как заставить тайм-аут бродяги Emacs?
Ответы (3)
В тех (частых) случаях, когда трамп останавливается, я просто останавливаю процесс с помощью C-g
, уничтожаю буфер трампа и затем могу сохранить файл.
M-x kill-buffer RET *tramp.*
person
yPhil
schedule
17.09.2013
Конечно; уничтожение буфера бродяг для соответствующего соединения является полезным общим подходом к устранению проблем с бродягами. (Я не уверен, что это лучшее решение для чего-то, что происходит очень часто, но, безусловно, стоит помнить об этом.)
- person phils; 18.09.2013
Когда я говорю часто, я на самом деле имею в виду, что когда я возвращаюсь к редактированию файла, открытого бродягой, спустя, скажем, более часа (ведьма не так часто), я почти уверен, что бродяга глубоко спит. С тех пор, как я обнаружил, что C-g и уничтожение буфера бродяг работает, мои отношения с emacs улучшились. Что помешало вам проголосовать за мой ответ, кстати?
- person yPhil; 18.09.2013
Я не проголосовал, потому что это казалось не имеющим прямого отношения к вопросу - уничтожение бродячего буфера может быть очень полезным, но оно не может вернуть к жизни удаленный сервер.
- 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
О, похоже, это сработает, но почему-то не получается. Облом!
- person User1; 07.12.2010
Я нашел одну подсказку, которая может ограничить мучительное ожидание до 5 секунд. Добавьте эту строку в .ssh/config:
Host * ServerAliveInterval 5
Однако через пять секунд вы все еще не можете выбрать файл. Итак, в случае сбоя просто выполните C-x b
буфер, который не открыт на остановленном сервере, и C-x-f
оттуда не будет длиться вечно.
person
User1
schedule
07.12.2010
C-g
в этой ситуации, может зависеть от вашей операционной системы (и от некоторых «экзотических» (то есть не-unix) платформ, от того, как был скомпилирован Emacs и, возможно, даже от того, как был скомпилирован ssh или другая вспомогательная программа). - person Gilles 'SO- stop being evil'   schedule 08.12.2010